aboutsummaryrefslogtreecommitdiffstats
path: root/askama_derive/src/generator.rs
diff options
context:
space:
mode:
authorLibravatar Dirkjan Ochtman <dirkjan@ochtman.nl>2018-04-27 13:44:19 +0200
committerLibravatar Dirkjan Ochtman <dirkjan@ochtman.nl>2018-04-27 13:44:19 +0200
commit08dbe0a466cdfb3a35e19911ee364e6a0ed0f1d3 (patch)
treed5c707c0d006bfae98bf460fc0e6a41f83b21bda /askama_derive/src/generator.rs
parentb83106c8e083cb49aef92ec891387c20f0494ecd (diff)
downloadaskama-08dbe0a466cdfb3a35e19911ee364e6a0ed0f1d3.tar.gz
askama-08dbe0a466cdfb3a35e19911ee364e6a0ed0f1d3.tar.bz2
askama-08dbe0a466cdfb3a35e19911ee364e6a0ed0f1d3.zip
Add support for unary operators (fixes #83)
Diffstat (limited to '')
-rw-r--r--askama_derive/src/generator.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/askama_derive/src/generator.rs b/askama_derive/src/generator.rs
index b110a89..0050d35 100644
--- a/askama_derive/src/generator.rs
+++ b/askama_derive/src/generator.rs
@@ -620,6 +620,7 @@ impl<'a> Generator<'a> {
Expr::Array(ref elements) => self.visit_array(elements, code),
Expr::Attr(ref obj, name) => self.visit_attr(obj, name, code),
Expr::Filter(name, ref args) => self.visit_filter(name, args, code),
+ Expr::Unary(op, ref inner) => self.visit_unary(op, inner, code),
Expr::BinOp(op, ref left, ref right) => self.visit_binop(op, left, right, code),
Expr::Group(ref inner) => self.visit_group(inner, code),
Expr::MethodCall(ref obj, method, ref args) => {
@@ -766,6 +767,12 @@ impl<'a> Generator<'a> {
DisplayWrap::Unwrapped
}
+ fn visit_unary(&mut self, op: &str, inner: &Expr, code: &mut String) -> DisplayWrap {
+ code.push_str(op);
+ self.visit_expr(inner, code);
+ DisplayWrap::Unwrapped
+ }
+
fn visit_binop(&mut self, op: &str, left: &Expr, right: &Expr, code: &mut String)
-> DisplayWrap {
self.visit_expr(left, code);