From 28d76964080f5c6c36d5f6ed72828b679fe352b4 Mon Sep 17 00:00:00 2001 From: bott Date: Sun, 7 Oct 2018 17:13:52 +0200 Subject: Add Rust macro support at templates --- askama_derive/src/generator.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'askama_derive/src/generator.rs') diff --git a/askama_derive/src/generator.rs b/askama_derive/src/generator.rs index 33fbe4c..41e1647 100644 --- a/askama_derive/src/generator.rs +++ b/askama_derive/src/generator.rs @@ -644,10 +644,20 @@ impl<'a> Generator<'a> { Expr::Group(ref inner) => self.visit_group(buf, inner), Expr::MethodCall(ref obj, method, ref args) => { self.visit_method_call(buf, obj, method, args) - } + }, + Expr::RustMacro(name, ref args) => self.visit_rust_macro(buf, name, args), } } + fn visit_rust_macro(&mut self, buf: &mut Buffer, name: &str, args: &[Expr]) -> DisplayWrap { + buf.write(name); + buf.write("!("); + self._visit_args(buf, args); + buf.write(")"); + + DisplayWrap::Unwrapped + } + fn visit_match_variant(&mut self, buf: &mut Buffer, param: &MatchVariant) -> DisplayWrap { let mut expr_buf = Buffer::new(0); let wrapped = match *param { -- cgit