summaryrefslogtreecommitdiff
path: root/src/library/mod.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-04-08 15:01:55 +0200
committerLaurenz <laurmaedje@gmail.com>2022-04-08 15:01:55 +0200
commit977ac77e6a3298be2644a8231e93acbef9f7f396 (patch)
tree9c40765b862bc583275f692113fe36924c323ccc /src/library/mod.rs
parente1d7edb7c1845e6df6f5e23e3baf7bc88159eade (diff)
Start & end alignment
Diffstat (limited to 'src/library/mod.rs')
-rw-r--r--src/library/mod.rs33
1 files changed, 27 insertions, 6 deletions
diff --git a/src/library/mod.rs b/src/library/mod.rs
index 7c5a519f..358c2204 100644
--- a/src/library/mod.rs
+++ b/src/library/mod.rs
@@ -113,12 +113,14 @@ pub fn new() -> Scope {
std.def_const("rtl", Dir::RTL);
std.def_const("ttb", Dir::TTB);
std.def_const("btt", Dir::BTT);
- std.def_const("left", Align::Left);
- std.def_const("center", Align::Center);
- std.def_const("right", Align::Right);
- std.def_const("top", Align::Top);
- std.def_const("horizon", Align::Horizon);
- std.def_const("bottom", Align::Bottom);
+ std.def_const("start", RawAlign::Start);
+ std.def_const("end", RawAlign::End);
+ std.def_const("left", RawAlign::Specific(Align::Left));
+ std.def_const("center", RawAlign::Specific(Align::Center));
+ std.def_const("right", RawAlign::Specific(Align::Right));
+ std.def_const("top", RawAlign::Specific(Align::Top));
+ std.def_const("horizon", RawAlign::Specific(Align::Horizon));
+ std.def_const("bottom", RawAlign::Specific(Align::Bottom));
std
}
@@ -127,6 +129,25 @@ dynamic! {
Dir: "direction",
}
+dynamic! {
+ RawAlign: "alignment",
+}
+
+dynamic! {
+ Spec<RawAlign>: "2d alignment",
+}
+
+castable! {
+ Spec<Option<RawAlign>>,
+ Expected: "1d or 2d alignment",
+ @align: RawAlign => {
+ let mut aligns = Spec::default();
+ aligns.set(align.axis(), Some(*align));
+ aligns
+ },
+ @aligns: Spec<RawAlign> => aligns.map(Some),
+}
+
castable! {
usize,
Expected: "non-negative integer",