summaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-03-11 20:01:56 +0100
committerLaurenz <laurmaedje@gmail.com>2023-03-11 20:01:56 +0100
commit1a390deaea040191cf0e5937bd8e1427b49db71b (patch)
treec45b034b7f3179170c649ceac6124ed4666ffd5c /src/model
parent529d3e10c6b4d973e88b6c295eb22a45ea426e42 (diff)
Figures
Diffstat (limited to 'src/model')
-rw-r--r--src/model/content.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/model/content.rs b/src/model/content.rs
index be737331..012ad05f 100644
--- a/src/model/content.rs
+++ b/src/model/content.rs
@@ -10,7 +10,9 @@ use once_cell::sync::Lazy;
use super::{node, Guard, Recipe, Style, StyleMap};
use crate::diag::{SourceResult, StrResult};
-use crate::eval::{cast_from_value, Args, Cast, FuncInfo, Str, Value, Vm};
+use crate::eval::{
+ cast_from_value, cast_to_value, Args, Cast, Func, FuncInfo, Str, Value, Vm,
+};
use crate::syntax::Span;
use crate::util::pretty_array_like;
use crate::World;
@@ -382,6 +384,15 @@ impl Deref for NodeId {
}
}
+cast_from_value! {
+ NodeId,
+ v: Func => v.id().ok_or("this function is not an element")?
+}
+
+cast_to_value! {
+ v: NodeId => Value::Func(v.into())
+}
+
/// Static node for a node.
pub struct NodeMeta {
/// The node's name.