summaryrefslogtreecommitdiff
path: root/src/library/align.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2019-10-17 09:28:06 +0200
committerLaurenz <laurmaedje@gmail.com>2019-10-17 09:28:06 +0200
commit9a1d57a11a510b8e6af024b4338ee58d791f3088 (patch)
tree5f28224b68b69c3db1365f75613b85798da0b1f7 /src/library/align.rs
parente87a34a4d0bf967427e2443f9f48026d09ccd5db (diff)
Implement context-modifying align 🧩
Diffstat (limited to 'src/library/align.rs')
-rw-r--r--src/library/align.rs17
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)
}
}
}