macro_rules! args {
(@key $key:ident) => { ... };
(@key $key:expr) => { ... };
($($key:tt : $value:expr),* $(,)?) => { ... };
}Expand description
Build a context map for Engine::render without requiring serde_json.
Unquoted identifiers (e.g. name) are stringified automatically.
Quoted string keys (e.g. "my-key") are also accepted for programmatic
construction from external data.
use template::{Engine, EscapeMode, args};
let mut engine = Engine::new(EscapeMode::Text);
engine.add_template("t", "Hello, {{ name }}!").unwrap();
let result = engine.render("t", args! { name: "World" }).unwrap();
assert_eq!(result, "Hello, World!");Supports nesting, vectors, and all types that implement Into<Value>:
use template::{Engine, EscapeMode, args};
let mut engine = Engine::new(EscapeMode::Text);
engine.add_template("t", "\
{% for item in items %}- {{ item }}
{% endfor %}").unwrap();
let result = engine.render("t", args! {
items: vec!["apple", "banana"],
}).unwrap();
assert_eq!(result, "- apple\n- banana\n");