Skip to main content

doido_view/
engine.rs

1pub trait TemplateEngine: Send + Sync {
2    fn render(&self, template: &str, context: &serde_json::Value) -> doido_core::Result<String>;
3    fn reload(&self) -> doido_core::Result<()>;
4
5    /// Render a template by its **exact** registered name (including any
6    /// `.html.tera` / `.text.tera` suffix), bypassing the `.html.tera` suffix
7    /// that [`render`](Self::render) appends. Used e.g. to render a mailer's
8    /// text part. The default delegates to [`render`](Self::render) for engines
9    /// that do not distinguish variants.
10    fn render_named(&self, name: &str, context: &serde_json::Value) -> doido_core::Result<String> {
11        self.render(name, context)
12    }
13}