use std::collections::HashMap;
use mustache2::render::{RenderManager, SourceCache, provider::StaticProvider};
use serde::Serialize;
#[derive(Serialize)]
struct Planet {
name: &'static str,
}
fn main() {
let cache = SourceCache::default();
let mut renderer = RenderManager::new(
StaticProvider(HashMap::from([("template", "Hello, {{name}}!\n")])),
&cache,
);
let mut out = String::new();
let mercury = Planet { name: "Mercury" };
if let Err(e) = renderer.render_serde_to(&mut out, "template", mercury) {
renderer.display_error(e);
return;
}
let venus = Planet { name: "Venus" };
if let Err(e) = renderer.render_serde_to(&mut out, "template", venus) {
renderer.display_error(e);
return;
}
assert_eq!(out, "Hello, Mercury!\nHello, Venus!\n");
}