tera
tera copied to clipboard
How to use in the template has . variables
Like a structured context with an ip address as the key
use tera::{Context, Tera};
#[derive(Serialize)]
struct Device {
pub device_ip: String,
pub description: String,
}
fn main() {
let raw_template = r#"
info:{{10.0.0.1.description}}
"#;
let device = Device {
device_ip: "10.0.0.1".into(),
description: "Default device".into(),
};
let mut t = Tera::default();
t.add_raw_template("template1", raw_template).unwrap();
let mut context = Context::new();
context.insert(&device.device_ip, &device);
let res = t.render("template1", &context).unwrap();
println!("{:?}", res)
}
burst out in error: `Error { kind: Msg("Failed to parse 'template1'"), source: Some(Error { kind: Msg(" --> 2:24\n |\n2 | info:{{10.0.0.1.description}}\n | ^---\n
|\n = expected `or`, `and`, `not`, `<=`, `>=`, `<`, `>`, `==`, `!=`, `+`, `-`, `*`, `/`, `%`, a filter, or a variable end (`}}`)"), source: None }) } `