Home
Head's Up: I'm in the middle of upgrading my site. Most things are in place, but there are something missing and/or broken including image alt text. Please bear with me while I'm getting things fixed.

Create A StructObject To Get Fields Directly In minijinja

[] Combine with id : 2tasgoyx

[package]
name = "minijinji_object_method_call"
version = "0.1.0"
edition = "2021"

[dependencies]
minijinja = "1.0.7"
use minijinja::value::{StructObject, Value};
use minijinja::{context, Environment};

fn main() {
    let mut env = Environment::new();
    env.add_template("hello", "{{ alfa_value.ping }}").unwrap();
    let tmpl = env.get_template("hello").unwrap();
    let alfa = Alfa {};
    let alfa_value = Value::from_struct_object(alfa);
    println!(
        "{}",
        tmpl.render(context!(alfa_value => alfa_value)).unwrap()
    );
}

pub struct Alfa {}

impl StructObject for Alfa {
    fn get_field(&self, name: &str) -> Option<Value> {
        match name {
            "ping" => Some(Value::from(self.ping())),
            _ => None,
        }
    }
}

impl Alfa {
    fn ping(&self) -> String {
        "One ping only".to_string()
    }
}