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!" );