diff --git a/src/lib.rs b/src/lib.rs index 79ae374..ff40935 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -385,7 +385,10 @@ impl SmartString { } fn pop(&mut self) -> Option { - todo!() + self.fragments.iter_mut() + .filter(|(visible, string)| *visible && !string.is_empty()) + .last() + .and_then(|(_, string)| string.pop()) } fn push(&mut self, ch: char) { diff --git a/src/test.rs b/src/test.rs index c67cca2..f2821a0 100644 --- a/src/test.rs +++ b/src/test.rs @@ -538,7 +538,7 @@ fn color_codes() { fn color_codes_in_header() { let mut config = AsciiTable::default(); let text = "Hello".color(Color::Blue).bg_color(Color::Yellow).bold(); - config.columns.insert(0, Column {header: text, ..Column::default()}); + config.columns.insert(0, Column {header: text.to_string(), ..Column::default()}); let input = vec![&[""]]; let expected = "┌───────┐\n\ │ \u{1b}[38;5;4m\u{1b}[48;5;3;1mHello\u{1b}[0m │\n\