diff options
| author | Laurenz <laurmaedje@gmail.com> | 2019-10-17 09:28:06 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2019-10-17 09:28:06 +0200 |
| commit | 9a1d57a11a510b8e6af024b4338ee58d791f3088 (patch) | |
| tree | 5f28224b68b69c3db1365f75613b85798da0b1f7 /src/library/align.rs | |
| parent | e87a34a4d0bf967427e2443f9f48026d09ccd5db (diff) | |
Implement context-modifying align 🧩
Diffstat (limited to 'src/library/align.rs')
| -rw-r--r-- | src/library/align.rs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/library/align.rs b/src/library/align.rs index be564c1b..922464a8 100644 --- a/src/library/align.rs +++ b/src/library/align.rs @@ -38,18 +38,21 @@ impl Function for AlignFunc { Ok(AlignFunc { alignment, body }) } - fn layout(&self, mut ctx: LayoutContext) -> LayoutResult<FuncCommands> { + fn layout(&self, ctx: LayoutContext) -> LayoutResult<CommandList> { if let Some(body) = &self.body { - ctx.alignment = self.alignment; + let layouts = layout_tree(body, LayoutContext { + alignment: self.alignment, + .. ctx + })?; - let layouts = layout_tree(body, ctx)?; - - let mut commands = FuncCommands::new(); + let mut commands = CommandList::new(); commands.add(Command::AddMany(layouts)); - Ok(commands) } else { - unimplemented!("context-modifying align func") + let mut commands = CommandList::new(); + commands.add(Command::SetAlignment(self.alignment)); + + Ok(commands) } } } |
