diff options
| author | Laurenz <laurmaedje@gmail.com> | 2022-02-17 15:47:54 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2022-02-17 17:32:56 +0100 |
| commit | c5e67af22bd6242366819879be84c10c4dd135be (patch) | |
| tree | d857b99b26401d1b3b74c4cebacbf086c25bef40 /src/eval/template.rs | |
| parent | 3d965ae6a479636a13b2e2f2344e8d97bedece1f (diff) | |
Merge eval and layout contexts into `Vm`
Diffstat (limited to 'src/eval/template.rs')
| -rw-r--r-- | src/eval/template.rs | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/eval/template.rs b/src/eval/template.rs index f953287d..2cd6797a 100644 --- a/src/eval/template.rs +++ b/src/eval/template.rs @@ -17,7 +17,6 @@ use crate::library::{ TextNode, UNDERLINE, }; use crate::util::EcoString; -use crate::Context; /// Composable representation of styled content. /// @@ -166,19 +165,19 @@ impl Template { } /// Layout this template into a collection of pages. - pub fn layout(&self, ctx: &mut Context) -> Vec<Arc<Frame>> { + pub fn layout(&self, vm: &mut Vm) -> Vec<Arc<Frame>> { let style_arena = Arena::new(); let template_arena = Arena::new(); - let (mut ctx, styles) = LayoutContext::new(ctx); let mut builder = Builder::new(&style_arena, &template_arena, true); - builder.process(self, styles); - builder.finish_page(true, false, styles); + let chain = StyleChain::new(vm.styles); + builder.process(self, chain); + builder.finish_page(true, false, chain); let (pages, shared) = builder.pages.unwrap().finish(); pages .iter() - .flat_map(|(page, map)| page.layout(&mut ctx, map.chain(&shared))) + .flat_map(|(page, map)| page.layout(vm, map.chain(&shared))) .collect() } } @@ -267,7 +266,7 @@ impl Sum for Template { impl Layout for Template { fn layout( &self, - ctx: &mut LayoutContext, + vm: &mut Vm, regions: &Regions, styles: StyleChain, ) -> Vec<Constrained<Arc<Frame>>> { @@ -279,7 +278,7 @@ impl Layout for Template { builder.finish_par(styles); let (flow, shared) = builder.flow.finish(); - FlowNode(flow).layout(ctx, regions, shared) + FlowNode(flow).layout(vm, regions, shared) } fn pack(self) -> LayoutNode { |
