From eb951c008beea502042db4a3a0e8d1f8b51f6f52 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Fri, 4 Nov 2022 09:30:44 +0100 Subject: Style changes --- library/src/layout/columns.rs | 8 +--- library/src/layout/grid.rs | 12 +++--- library/src/layout/mod.rs | 86 +++++++++++++++++++------------------------ library/src/layout/page.rs | 7 +--- 4 files changed, 47 insertions(+), 66 deletions(-) (limited to 'library/src/layout') diff --git a/library/src/layout/columns.rs b/library/src/layout/columns.rs index 8eae922b..2faa6329 100644 --- a/library/src/layout/columns.rs +++ b/library/src/layout/columns.rs @@ -74,12 +74,8 @@ impl LayoutBlock for ColumnsNode { let mut output = Frame::new(Size::new(regions.first.x, height)); let mut cursor = Abs::zero(); - for _ in 0 .. columns { - let frame = match frames.next() { - Some(frame) => frame, - None => break, - }; - + for _ in 0..columns { + let Some(frame) = frames.next() else { break }; if !regions.expand.y { output.size_mut().y.set_max(frame.height()); } diff --git a/library/src/layout/grid.rs b/library/src/layout/grid.rs index a6f93ab6..8e1cb7a2 100644 --- a/library/src/layout/grid.rs +++ b/library/src/layout/grid.rs @@ -170,13 +170,13 @@ impl<'a> GridLayouter<'a> { }; // Collect content and gutter columns. - for x in 0 .. c { + for x in 0..c { cols.push(get_or(tracks.x, x, auto)); cols.push(get_or(gutter.x, x, zero)); } // Collect content and gutter rows. - for y in 0 .. r { + for y in 0..r { rows.push(get_or(tracks.y, y, auto)); rows.push(get_or(gutter.y, y, zero)); } @@ -214,7 +214,7 @@ impl<'a> GridLayouter<'a> { fn layout(mut self) -> SourceResult> { self.measure_columns()?; - for y in 0 .. self.rows.len() { + for y in 0..self.rows.len() { // Skip to next region if current one is full, but only for content // rows, not for gutter rows. if y % 2 == 0 && self.regions.is_full() { @@ -295,7 +295,7 @@ impl<'a> GridLayouter<'a> { } let mut resolved = Abs::zero(); - for y in 0 .. self.rows.len() { + for y in 0..self.rows.len() { if let Some(cell) = self.cell(x, y) { let size = Size::new(available, self.regions.base.y); let mut pod = @@ -412,7 +412,7 @@ impl<'a> GridLayouter<'a> { // eaten up by any fr rows. if self.fr.is_zero() { let len = resolved.len(); - for (region, target) in self.regions.iter().zip(&mut resolved[.. len - 1]) { + for (region, target) in self.regions.iter().zip(&mut resolved[..len - 1]) { target.set_max(region.y); } } @@ -502,7 +502,7 @@ impl<'a> GridLayouter<'a> { // Prepare regions. let size = Size::new(self.used.x, heights[0]); let mut pod = Regions::one(size, self.regions.base, Axes::splat(true)); - pod.backlog = heights[1 ..].to_vec(); + pod.backlog = heights[1..].to_vec(); // Layout the row. let mut pos = Point::zero(); diff --git a/library/src/layout/mod.rs b/library/src/layout/mod.rs index 5ab5f42e..e116f159 100644 --- a/library/src/layout/mod.rs +++ b/library/src/layout/mod.rs @@ -12,17 +12,17 @@ mod spacing; mod stack; mod transform; -pub use align::*; -pub use columns::*; -pub use container::*; -pub use flow::*; -pub use grid::*; -pub use pad::*; -pub use page::*; -pub use place::*; -pub use spacing::*; -pub use stack::*; -pub use transform::*; +pub use self::align::*; +pub use self::columns::*; +pub use self::container::*; +pub use self::flow::*; +pub use self::grid::*; +pub use self::pad::*; +pub use self::page::*; +pub use self::place::*; +pub use self::spacing::*; +pub use self::stack::*; +pub use self::transform::*; use std::mem; @@ -357,18 +357,19 @@ impl<'a> Builder<'a> { content: &'a Content, styles: StyleChain<'a>, ) -> SourceResult { - if let Some(mut realized) = styles.apply(self.world, Target::Node(content))? { - let mut map = StyleMap::new(); - let barrier = Barrier::new(content.id()); - map.push(StyleEntry::Barrier(barrier)); - map.push(StyleEntry::Barrier(barrier)); - realized = realized.styled_with_map(map); - let stored = self.scratch.templates.alloc(realized); - self.accept(stored, styles)?; - Ok(true) - } else { - Ok(false) - } + let Some(mut realized) = styles.apply(self.world, Target::Node(content))? else { + return Ok(false); + }; + + let mut map = StyleMap::new(); + let barrier = Barrier::new(content.id()); + map.push(StyleEntry::Barrier(barrier)); + map.push(StyleEntry::Barrier(barrier)); + realized = realized.styled_with_map(map); + let stored = self.scratch.templates.alloc(realized); + self.accept(stored, styles)?; + + Ok(true) } fn styled( @@ -466,10 +467,7 @@ impl<'a> DocBuilder<'a> { impl Default for DocBuilder<'_> { fn default() -> Self { - Self { - pages: StyleVecBuilder::new(), - keep_next: true, - } + Self { pages: StyleVecBuilder::new(), keep_next: true } } } @@ -658,30 +656,25 @@ impl<'a> ListBuilder<'a> { { self.items.push(item.clone(), styles); self.tight &= self.staged.drain(..).all(|(t, _)| !t.is::()); - } else { - return false; + return true; } } else if !self.items.is_empty() && (content.is::() || content.is::()) { self.staged.push((content, styles)); - } else { - return false; + return true; } - true + false } fn finish(self, parent: &mut Builder<'a>) -> SourceResult<()> { let (items, shared) = self.items.finish(); - let kind = match items.items().next() { - Some(item) => item.kind(), - None => return Ok(()), - }; + let Some(item) = items.items().next() else { return Ok(()) }; let tight = self.tight; let attached = tight && self.attachable; - let content = match kind { + let content = match item.kind() { LIST => ListNode:: { tight, attached, items }.pack(), ENUM => ListNode:: { tight, attached, items }.pack(), DESC | _ => ListNode:: { tight, attached, items }.pack(), @@ -765,18 +758,15 @@ impl<'a, T> CollapsingBuilder<'a, T> { } if self.last == Last::Weak { - if let Some(i) = - self.staged.iter().position(|(prev_item, _, prev_weakness)| { - prev_weakness.map_or(false, |prev_weakness| { - weakness < prev_weakness - || (weakness == prev_weakness && item > *prev_item) - }) + let weak = self.staged.iter().position(|(prev_item, _, prev_weakness)| { + prev_weakness.map_or(false, |prev_weakness| { + weakness < prev_weakness + || (weakness == prev_weakness && item > *prev_item) }) - { - self.staged.remove(i); - } else { - return; - } + }); + + let Some(weak) = weak else { return }; + self.staged.remove(weak); } self.staged.push((item, styles, Some(weakness))); diff --git a/library/src/layout/page.rs b/library/src/layout/page.rs index 7ce0d633..e1af6ec5 100644 --- a/library/src/layout/page.rs +++ b/library/src/layout/page.rs @@ -111,12 +111,7 @@ impl PageNode { let pw = size.x - pad.left - pad.right; let py = size.y - pad.bottom; for (role, marginal, pos, area) in [ - ( - Role::Header, - header, - Point::with_x(pad.left), - Size::new(pw, pad.top), - ), + (Role::Header, header, Point::with_x(pad.left), Size::new(pw, pad.top)), ( Role::Footer, footer, -- cgit v1.2.3