summaryrefslogtreecommitdiff
path: root/src/eval/value.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-01-07 21:24:36 +0100
committerLaurenz <laurmaedje@gmail.com>2022-01-08 00:20:48 +0100
commite74ae6ce70d4c6ca006613eadf07f920951789e3 (patch)
tree0b9b2ddabf79dad8d55631780ee5d70afe7362d7 /src/eval/value.rs
parent0b624390906e911bde325b487b2710b67c8205c8 (diff)
Make all nodes into classes
Diffstat (limited to 'src/eval/value.rs')
-rw-r--r--src/eval/value.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/eval/value.rs b/src/eval/value.rs
index 0995ab75..3b1ef3f7 100644
--- a/src/eval/value.rs
+++ b/src/eval/value.rs
@@ -397,7 +397,13 @@ primitive! { EcoString: "string", Str }
primitive! { Array: "array", Array }
primitive! { Dict: "dictionary", Dict }
primitive! { Node: "template", Node }
-primitive! { Function: "function", Func }
+primitive! { Function: "function",
+ Func,
+ Class(v) => Function::new(
+ Some(v.name().clone()),
+ move |ctx, args| v.construct(ctx, args).map(Value::Node)
+ )
+}
primitive! { Class: "class", Class }
impl Cast<Value> for Value {