mirror of
https://git.proxmox.com/git/rustc
synced 2025-08-17 23:40:08 +00:00
32 lines
812 B
Rust
32 lines
812 B
Rust
#[macro_use]
|
|
extern crate handlebars;
|
|
#[macro_use]
|
|
extern crate serde_json;
|
|
|
|
use handlebars::Handlebars;
|
|
|
|
handlebars_helper!(lower: |s: str| s.to_lowercase());
|
|
handlebars_helper!(upper: |s: str| s.to_uppercase());
|
|
handlebars_helper!(hex: |v: i64| format!("0x{:x}", v));
|
|
|
|
#[test]
|
|
fn test_macro_helper() {
|
|
let mut hbs = Handlebars::new();
|
|
|
|
hbs.register_helper("lower", Box::new(lower));
|
|
hbs.register_helper("upper", Box::new(upper));
|
|
hbs.register_helper("hex", Box::new(hex));
|
|
|
|
let data = json!("Teixeira");
|
|
|
|
assert_eq!(
|
|
hbs.render_template("{{lower this}}", &data).unwrap(),
|
|
"teixeira"
|
|
);
|
|
assert_eq!(
|
|
hbs.render_template("{{upper this}}", &data).unwrap(),
|
|
"TEIXEIRA"
|
|
);
|
|
assert_eq!(hbs.render_template("{{hex 16}}", &()).unwrap(), "0x10");
|
|
}
|