diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-01-07 21:24:36 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-01-08 00:20:48 +0100 |
| commit | e74ae6ce70d4c6ca006613eadf07f920951789e3 (patch) | |
| tree | 0b9b2ddabf79dad8d55631780ee5d70afe7362d7 /src/library/stack.rs | |
| parent | 0b624390906e911bde325b487b2710b67c8205c8 (diff) | |
Make all nodes into classes
Diffstat (limited to 'src/library/stack.rs')
| -rw-r--r-- | src/library/stack.rs | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/library/stack.rs b/src/library/stack.rs index f4f7a3cf..8c8a9f60 100644 --- a/src/library/stack.rs +++ b/src/library/stack.rs @@ -3,16 +3,7 @@ use super::prelude::*; use super::{AlignNode, SpacingKind}; -/// `stack`: Stack children along an axis. -pub fn stack(_: &mut EvalContext, args: &mut Args) -> TypResult<Value> { - Ok(Value::block(StackNode { - dir: args.named("dir")?.unwrap_or(Dir::TTB), - spacing: args.named("spacing")?, - children: args.all().collect(), - })) -} - -/// A node that stacks its children. +/// Stack children along an axis. #[derive(Debug, Hash)] pub struct StackNode { /// The stacking direction. @@ -23,6 +14,17 @@ pub struct StackNode { pub children: Vec<StackChild>, } +#[class] +impl StackNode { + fn construct(_: &mut EvalContext, args: &mut Args) -> TypResult<Node> { + Ok(Node::block(Self { + dir: args.named("dir")?.unwrap_or(Dir::TTB), + spacing: args.named("spacing")?, + children: args.all().collect(), + })) + } +} + impl Layout for StackNode { fn layout( &self, |
