Liquid sort array or vector



examples/liquid/sorted-array/Cargo.toml
[package]
name = "sorted-array"
version = "0.1.0"
edition = "2021"

[dependencies]
liquid = "0.26"

examples/liquid/sorted-array/src/main.rs
fn main() {
    let result = render("direct: {% for item in items %}{{item}} {% endfor %}");
    println!("{}", result);

    let result = render("sorted: {% assign sorted = items | sort %}{% for item in sorted %}{{item}} {% endfor %}");
    println!("{}", result);
}

fn render(tmpl: &str) -> String {
    let template = liquid::ParserBuilder::with_stdlib()
        .build()
        .unwrap()
        .parse(tmpl)
        .unwrap();

    let globals = liquid::object!({
        "items": vec![2, 8, 4, 6, 3, 5, 7],
    });
    template.render(&globals).unwrap()
}

#[test]
pub fn test_reverse() {
    let result = render("direct: {% for item in items %}{{item}} {% endfor %}");
    assert_eq!(result, "direct: 2 8 4 6 3 5 7 ");

    let result = render("sorted: {% assign sorted = items | sort %}{% for item in sorted %}{{item}} {% endfor %}");
    assert_eq!(result, "sorted: 2 3 4 5 6 7 8 ");
}

direct: 2 8 4 6 3 5 7 
sorted: 2 3 4 5 6 7 8