diff options
| author | Laurenz <laurmaedje@gmail.com> | 2021-12-28 13:37:02 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2021-12-28 13:41:26 +0100 |
| commit | bd304b99e5d2d23027d90eaae871fdd3bdd12f5d (patch) | |
| tree | a6814a4ba90764dcb1de3d55fa6e95d7a71dc14a /src/library/align.rs | |
| parent | 9624ad635bd8adb0e421c37c63c7310ecc71a708 (diff) | |
Tidying
Diffstat (limited to 'src/library/align.rs')
| -rw-r--r-- | src/library/align.rs | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/src/library/align.rs b/src/library/align.rs index c16277f6..16c44905 100644 --- a/src/library/align.rs +++ b/src/library/align.rs @@ -1,9 +1,11 @@ +//! Aligning nodes in their parent container. + use super::prelude::*; use super::ParNode; /// `align`: Configure the alignment along the layouting axes. pub fn align(_: &mut EvalContext, args: &mut Args) -> TypResult<Value> { - let aligns: Spec<_> = args.expect("alignment")?; + let aligns: Spec<_> = args.find().unwrap_or_default(); let body: Node = args.expect("body")?; let mut styles = Styles::new(); @@ -16,6 +18,26 @@ pub fn align(_: &mut EvalContext, args: &mut Args) -> TypResult<Value> { )) } +dynamic! { + Align: "alignment", +} + +dynamic! { + Spec<Align>: "2d alignment", +} + +castable! { + Spec<Option<Align>>, + Expected: "1d or 2d alignment", + @align: Align => { + let mut aligns = Spec::default(); + aligns.set(align.axis(), Some(*align)); + aligns + }, + @aligns: Spec<Align> => aligns.map(Some), + +} + /// A node that aligns its child. #[derive(Debug, Hash)] pub struct AlignNode { @@ -57,19 +79,3 @@ impl Layout for AlignNode { frames } } - -dynamic! { - Align: "alignment", -} - -castable! { - Spec<Option<Align>>, - Expected: "1d or 2d alignment", - @align: Align => { - let mut aligns = Spec::default(); - aligns.set(align.axis(), Some(*align)); - aligns - }, - @aligns: Spec<Align> => aligns.map(Some), - -} |
