TemplateRenderer

Trait TemplateRenderer 

Source
pub trait TemplateRenderer {
    // Required method
    fn render(
        &self,
        template: &str,
        values: &BTreeMap<String, JsonValue>,
    ) -> Result<String, Error>;
}
Expand description

Template rendering engine trait.

Abstracts template processing behind a trait to enable pluggable rendering engines. The default implementation uses Handlebars, but users can implement custom renderers for other template syntaxes.

§Examples

use genfile_core::{ TemplateRenderer, HandlebarsRenderer, Error, Values, Value };

let renderer = HandlebarsRenderer::new();
let template = "Hello {{name}}!";
let mut values = Values::new();
values.insert( "name", Value::String( "World".into() ) );

let result = renderer.render( template, &values.to_serializable() )?;
assert_eq!( result, "Hello World!" );

Required Methods§

Source

fn render( &self, template: &str, values: &BTreeMap<String, JsonValue>, ) -> Result<String, Error>

Renders a template with provided values.

§Parameters
  • template: Template content with placeholders
  • values: Variable values for substitution (with preserved types)
§Returns

Rendered string on success, Error on failure

§Errors

Returns Error::Render if template syntax is invalid or rendering fails.

Implementors§