diff --git a/src/core/menu/render.rs b/src/core/menu/render.rs index 5ceb605a..e2c2b678 100644 --- a/src/core/menu/render.rs +++ b/src/core/menu/render.rs @@ -21,9 +21,10 @@ pub struct Renderer { pub lines: Option, } -impl Renderer { - fn selectbox_to_layout(&self) -> Vec { - self.menu +impl Renderable for Renderer { + fn make_pane(&self, width: u16) -> Pane { + let matrix = self + .menu .content() .iter() .enumerate() @@ -41,17 +42,10 @@ impl Renderer { ) } }) - .collect() - } -} + .collect::>(); + + let trimed = matrix.iter().map(|row| trim(width as usize, row)).collect(); -impl Renderable for Renderer { - fn make_pane(&self, width: u16) -> Pane { - let trimed = self - .selectbox_to_layout() - .iter() - .map(|row| trim(width as usize, row)) - .collect(); Pane::new(trimed, self.menu.position, self.lines) } diff --git a/src/core/text_editor/render.rs b/src/core/text_editor/render.rs index 75d161f3..2a004dc2 100644 --- a/src/core/text_editor/render.rs +++ b/src/core/text_editor/render.rs @@ -41,17 +41,6 @@ pub struct Renderer { pub lines: Option, } -impl Renderer { - fn texteditor_to_graphemes(&self) -> Graphemes { - let text = match self.mask { - Some(mask) => self.texteditor.masking(mask), - None => self.texteditor.content(), - }; - Graphemes::new_with_style(text, self.style) - .stylize(self.texteditor.position, self.cursor_style) - } -} - impl Renderable for Renderer { fn make_pane(&self, width: u16) -> Pane { let mut buf = Graphemes::default(); @@ -59,7 +48,16 @@ impl Renderable for Renderer { &self.prefix, self.prefix_style, )); - buf.append(&mut self.texteditor_to_graphemes()); + + let text = match self.mask { + Some(mask) => self.texteditor.masking(mask), + None => self.texteditor.content(), + }; + + let mut styled = Graphemes::new_with_style(text, self.style) + .stylize(self.texteditor.position, self.cursor_style); + + buf.append(&mut styled); Pane::new( matrixify(width as usize, &buf), diff --git a/src/core/tree/render.rs b/src/core/tree/render.rs index 6e36e66d..fc98ee68 100644 --- a/src/core/tree/render.rs +++ b/src/core/tree/render.rs @@ -21,9 +21,10 @@ pub struct Renderer { pub lines: Option, } -impl Renderer { - fn tree_to_layout(&self) -> Vec { - self.tree +impl Renderable for Renderer { + fn make_pane(&self, width: u16) -> crate::pane::Pane { + let matrix = self + .tree .content() .iter() .enumerate() @@ -45,17 +46,9 @@ impl Renderer { ) } }) - .collect() - } -} + .collect::>(); -impl Renderable for Renderer { - fn make_pane(&self, width: u16) -> crate::pane::Pane { - let trimed = self - .tree_to_layout() - .iter() - .map(|row| trim(width as usize, row)) - .collect(); + let trimed = matrix.iter().map(|row| trim(width as usize, row)).collect(); Pane::new(trimed, self.tree.position, self.lines) }