summaryrefslogtreecommitdiff
path: root/library/src/layout/container.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2023-06-06 21:13:59 +0200
committerLaurenz <laurmaedje@gmail.com>2023-06-06 22:06:16 +0200
commitfd417da04f7ca4b995de7f6510abafd3e9c31307 (patch)
tree3675529c75ca7363701ac8ea306de2cc1d3cbcb3 /library/src/layout/container.rs
parent168bdf35bd773e67343c965cb473492cc5cae9e7 (diff)
Improve value casting infrastructure
Diffstat (limited to 'library/src/layout/container.rs')
-rw-r--r--library/src/layout/container.rs19
1 files changed, 9 insertions, 10 deletions
diff --git a/library/src/layout/container.rs b/library/src/layout/container.rs
index b7d0ba2f..d28c8b5e 100644
--- a/library/src/layout/container.rs
+++ b/library/src/layout/container.rs
@@ -1,3 +1,5 @@
+use typst::eval::AutoValue;
+
use super::VElem;
use crate::layout::Spacing;
use crate::prelude::*;
@@ -482,17 +484,14 @@ impl<T: Into<Spacing>> From<T> for Sizing {
}
}
-cast_from_value! {
+cast! {
Sizing,
- _: Smart<Never> => Self::Auto,
+ self => match self {
+ Self::Auto => Value::Auto,
+ Self::Rel(rel) => rel.into_value(),
+ Self::Fr(fr) => fr.into_value(),
+ },
+ _: AutoValue => Self::Auto,
v: Rel<Length> => Self::Rel(v),
v: Fr => Self::Fr(v),
}
-
-cast_to_value! {
- v: Sizing => match v {
- Sizing::Auto => Value::Auto,
- Sizing::Rel(rel) => Value::Relative(rel),
- Sizing::Fr(fr) => Value::Fraction(fr),
- }
-}