rocket_base_app/src/templates.rs


Home Back
use minijinja::{Environment, Value};
use std::error::Error;
use std::fs;

#[macro_export]
macro_rules! template_embed {
    ($file_name:expr, $ctx:expr) => {{
        let text = include_str!($file_name);
        let mut env = Environment::new();
        env.add_template($file_name, text).unwrap();
        let tmpl = env.get_template($file_name).unwrap();
        let res = tmpl.render($ctx).unwrap();
        Ok(res)
    }};
}

pub fn template_load(file_name: &str, ctx: Value) -> Result<String, Box<dyn Error>> {
    let text: String;
    text = fs::read_to_string(file_name)?;

    let text_clone = text.clone();
    let mut env = Environment::new();
    env.add_template(file_name, text_clone.as_str())?;
    let tmpl = env.get_template(file_name)?;
    let res = tmpl.render(ctx)?;
    Ok(res)
}

Powered by Code, a simple repository browser by Fabio Di Matteo