diff options
| author | Laurenz <laurmaedje@gmail.com> | 2021-03-25 21:32:33 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2021-03-25 21:32:33 +0100 |
| commit | 76fc4cca62f5b955200b2c62cc85b69eea491ece (patch) | |
| tree | 5b8492268c996cf23b13e26c7a4356fbd156286d /src/library/spacing.rs | |
| parent | e8057a53856dc09594c9e5861f1cd328531616e0 (diff) | |
Refactor alignments & directions 📐
- Adds lang function
- Refactors execution context
- Adds StackChild and ParChild enums
Diffstat (limited to 'src/library/spacing.rs')
| -rw-r--r-- | src/library/spacing.rs | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/library/spacing.rs b/src/library/spacing.rs index d4648566..6a67a653 100644 --- a/src/library/spacing.rs +++ b/src/library/spacing.rs @@ -1,5 +1,4 @@ use super::*; -use crate::layout::SpacingNode; /// `h`: Horizontal spacing. /// @@ -9,7 +8,7 @@ use crate::layout::SpacingNode; /// # Return value /// A template that inserts horizontal spacing. pub fn h(ctx: &mut EvalContext, args: &mut FuncArgs) -> Value { - spacing_impl(ctx, args, SpecAxis::Horizontal) + spacing_impl("h", ctx, args, GenAxis::Cross) } /// `v`: Vertical spacing. @@ -20,20 +19,20 @@ pub fn h(ctx: &mut EvalContext, args: &mut FuncArgs) -> Value { /// # Return value /// A template that inserts vertical spacing. pub fn v(ctx: &mut EvalContext, args: &mut FuncArgs) -> Value { - spacing_impl(ctx, args, SpecAxis::Vertical) + spacing_impl("v", ctx, args, GenAxis::Main) } -fn spacing_impl(ctx: &mut EvalContext, args: &mut FuncArgs, axis: SpecAxis) -> Value { +fn spacing_impl( + name: &str, + ctx: &mut EvalContext, + args: &mut FuncArgs, + axis: GenAxis, +) -> Value { let spacing: Option<Linear> = args.require(ctx, "spacing"); - Value::template("spacing", move |ctx| { + Value::template(name, move |ctx| { if let Some(linear) = spacing { let amount = linear.resolve(ctx.state.font.resolve_size()); - let spacing = SpacingNode { amount, softness: 0 }; - if axis == ctx.state.dirs.main.axis() { - ctx.push_into_stack(spacing); - } else { - ctx.push(spacing); - } + ctx.push_spacing(axis, amount, 0); } }) } |
