diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-06-06 21:13:59 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-06-06 22:06:16 +0200 |
| commit | fd417da04f7ca4b995de7f6510abafd3e9c31307 (patch) | |
| tree | 3675529c75ca7363701ac8ea306de2cc1d3cbcb3 /library/src/layout/container.rs | |
| parent | 168bdf35bd773e67343c965cb473492cc5cae9e7 (diff) | |
Improve value casting infrastructure
Diffstat (limited to 'library/src/layout/container.rs')
| -rw-r--r-- | library/src/layout/container.rs | 19 |
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), - } -} |
