template_demo/
template_demo.rs1use net_shell::template::TemplateEngine;
2use serde_json::json;
3
4fn main() -> Result<(), Box<dyn std::error::Error>> {
5 println!("=== 测试模板引擎完整功能 ===");
6
7 let mut engine = TemplateEngine::new();
9 engine.set_variable("name", "World");
10 engine.set_variable("age", 25);
11
12 let result = engine.render_string("Hello, {{ name }}! You are {{ age }} years old.")?;
13 println!("变量替换测试: {}", result);
14
15 engine.set_variable("user", json!({
17 "name": "Alice",
18 "profile": {
19 "age": 30,
20 "city": "Beijing"
21 }
22 }));
23
24 let result = engine.render_string("Name: {{ user.name }}, City: {{ user.profile.city }}")?;
25 println!("嵌套变量测试: {}", result);
26
27 engine.set_variable("items", json!(["apple", "banana", "cherry"]));
29
30 let template = r#"
31{% for item in items %}
32- {{ item }}
33{% endfor %}"#;
34
35 let result = engine.render_string(template)?;
36 println!("For循环测试:{}", result);
37
38 let mut custom_engine = TemplateEngine::with_delimiters("${", "}");
40 custom_engine.set_variable("name", "Custom");
41
42 let result = custom_engine.render_string("Hello, ${ name }!")?;
43 println!("自定义定界符测试: {}", result);
44
45 engine.set_variable("title", "User List");
47 engine.set_variable("users", json!([
48 {"name": "Alice", "age": 25},
49 {"name": "Bob", "age": 30},
50 {"name": "Charlie", "age": 35}
51 ]));
52
53 let template = r#"
54<h1>{{ title }}</h1>
55<ul>
56{% for user in users %}
57 <li>{{ user.name }} ({{ user.age }} years old)</li>
58{% endfor %}
59</ul>"#;
60
61 let result = engine.render_string(template)?;
62 println!("复杂模板测试:{}", result);
63
64 println!("=== 所有测试完成 ===");
65 Ok(())
66}