summaryrefslogtreecommitdiff
path: root/src/library/align.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-12-28 13:37:02 +0100
committerLaurenz <laurmaedje@gmail.com>2021-12-28 13:41:26 +0100
commitbd304b99e5d2d23027d90eaae871fdd3bdd12f5d (patch)
treea6814a4ba90764dcb1de3d55fa6e95d7a71dc14a /src/library/align.rs
parent9624ad635bd8adb0e421c37c63c7310ecc71a708 (diff)
Tidying
Diffstat (limited to 'src/library/align.rs')
-rw-r--r--src/library/align.rs40
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),
-
-}