nargo_template/renderers/
mod.rs1#![warn(missing_docs)]
2
3#[async_trait::async_trait]
5pub trait TemplateRenderer: Send + Sync {
6 fn render(&self, template_name: &str, context: &serde_json::Value) -> crate::TemplateResult<String>;
8
9 async fn render_async(&self, template_name: &str, context: &serde_json::Value) -> crate::TemplateResult<String> {
11 Ok(self.render(template_name, context)?)
12 }
13
14 fn register_template(&mut self, name: &str, content: &str) -> crate::TemplateResult<()>;
16
17 fn register_template_file(&mut self, name: &str, path: &std::path::Path) -> crate::TemplateResult<()>;
19
20 fn register_templates_from_dir(&mut self, dir: &std::path::Path, extension: Option<&str>) -> crate::TemplateResult<()>;
22}
23
24#[cfg(feature = "jinja")]
25pub mod jinja;
26
27#[cfg(feature = "dejavu")]
28pub mod dejavu;
29
30#[cfg(feature = "liquid")]
31pub mod liquid;