Get The Value Of A Struct Object's Key In MiniJinja
```cargo
[dependencies]
minijinja = "2.6.0"
```
use minijinja::value::{Object, Value};
use minijinja::{context, Environment};
use std::sync::Arc;
#[derive(Clone, Debug)]
struct Widget {
item: String
}
impl Widget {
pub fn new() -> Widget {
Widget { item: "alfa echo".to_string() }
}
}
impl Object for Widget {
fn get_value(self: &Arc<Self>, key: &Value) -> Option<Value> {
match key.as_str()? {
"item" => Some(Value::from(&self.item)),
_ => Some(Value::from(format!(
"ISSUE: No field for page.{}",
key.to_string()
)
)
),
}
}
}
fn main() {
let raw_widget = Widget::new();
let widget = Value::from_object(raw_widget);
let mut env = Environment::new();
env.add_template("main", "{{ widget.item }}").unwrap();
let tmpl = env.get_template("main").unwrap();
let output = tmpl
.render(context!(widget => widget))
.unwrap();
println!("{}", output);
}
Output:
alfa echo
-- end of line --