2 个版本 (1 个稳定版)
1.0.0 | 2020年12月6日 |
---|---|
0.1.0 | 2020年12月5日 |
#296 in 模板引擎
15KB
196 行
Funcy

Funcy 是一个简单的基于函数的模板引擎。
示例
回声
struct Echo();
impl funcy::PlaceholderFunction for Echo {
fn placeholder_fn_handler<'a>(&mut self, _name: &'a str, arg: &'a str) -> Result<String, String> {
Ok(arg.to_string())
}
}
let mut tr = funcy::TemplateRenderer::with_template("<!$ echo Hello>, World!");
tr.set_placeholder_fn("echo", Box::new(Echo()));
assert_eq!(tr.render().unwrap(), "Hello, World!");
计数器
struct Counter(usize);
impl funcy::PlaceholderFunction for Counter {
fn placeholder_fn_handler<'a>(&mut self, _name: &'a str, _arg: &'a str) -> Result<String, String> {
self.0 += 1;
Ok(self.0.to_string())
}
}
let mut tr = funcy::TemplateRenderer::with_template("<!$ counter> <!$ counter> <!$ counter>")
let counter = Counter(0);
tr.set_placeholder_fn("counter", Box::new(counter));
assert_eq!(tr.render().unwrap(), "1 2 3");
许可证
Funcy 在 Apache-2.0 许可下分发。请参阅 LICENSE 文件。