From a9869c212f7c1bc77a52e301ad014641b014e834 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Thu, 26 May 2022 13:49:44 +0200 Subject: Locatable groups --- src/eval/value.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/eval/value.rs') diff --git a/src/eval/value.rs b/src/eval/value.rs index b47d1e91..9b36812a 100644 --- a/src/eval/value.rs +++ b/src/eval/value.rs @@ -11,7 +11,7 @@ use crate::geom::{ Angle, Color, Dir, Em, Fraction, Length, Paint, Ratio, Relative, RgbaColor, Sides, }; use crate::library::text::RawNode; -use crate::model::{Content, Layout, LayoutNode, Pattern}; +use crate::model::{Content, Group, Layout, LayoutNode, Pattern}; use crate::syntax::Spanned; use crate::util::EcoString; @@ -73,6 +73,14 @@ impl Value { Self::Content(Content::block(node)) } + /// Create a new dynamic value. + pub fn dynamic(any: T) -> Self + where + T: Type + Debug + PartialEq + Hash + Sync + Send + 'static, + { + Self::Dyn(Dynamic::new(any)) + } + /// The name of the stored value's type. pub fn type_name(&self) -> &'static str { match self { @@ -653,6 +661,10 @@ dynamic! { Regex: "regular expression", } +dynamic! { + Group: "group", +} + castable! { usize, Expected: "non-negative integer", -- cgit v1.2.3