nargo-template 0.0.1

Nargo template engine management
Documentation
#![warn(missing_docs)]

/// 模板渲染器 trait
#[async_trait::async_trait]
pub trait TemplateRenderer: Send + Sync {
    /// 渲染单个模板
    fn render(&self, template_name: &str, context: &serde_json::Value) -> crate::TemplateResult<String>;

    /// 异步渲染单个模板
    async fn render_async(&self, template_name: &str, context: &serde_json::Value) -> crate::TemplateResult<String> {
        Ok(self.render(template_name, context)?)
    }

    /// 注册模板
    fn register_template(&mut self, name: &str, content: &str) -> crate::TemplateResult<()>;

    /// 注册模板文件
    fn register_template_file(&mut self, name: &str, path: &std::path::Path) -> crate::TemplateResult<()>;

    /// 从目录注册所有模板
    fn register_templates_from_dir(&mut self, dir: &std::path::Path, extension: Option<&str>) -> crate::TemplateResult<()>;
}

#[cfg(feature = "jinja")]
pub mod jinja;

#[cfg(feature = "dejavu")]
pub mod dejavu;

#[cfg(feature = "liquid")]
pub mod liquid;