diff --git a/src/widgets/list.rs b/src/widgets/list.rs index b0279d7..b88a96e 100644 --- a/src/widgets/list.rs +++ b/src/widgets/list.rs @@ -128,6 +128,14 @@ impl<'a> List<'a> { self } + pub fn len(&self) -> usize { + self.items.len() + } + + pub fn is_empty(&self) -> bool { + self.items.is_empty() + } + fn get_items_bounds( &self, selected: Option, diff --git a/tests/widgets_list.rs b/tests/widgets_list.rs index 019aaf6..ffb2247 100644 --- a/tests/widgets_list.rs +++ b/tests/widgets_list.rs @@ -9,6 +9,23 @@ use tui::{ Terminal, }; + +#[test] +fn list_should_shows_the_length() { + let items = vec![ + ListItem::new("Item 1"), + ListItem::new("Item 2"), + ListItem::new("Item 3"), + ]; + let list = List::new(items); + assert_eq!(list.len(), 3); + assert_eq!(list.is_empty(), false); + + let empty_list = List::new(vec![]); + assert_eq!(empty_list.len(), 0); + assert_eq!(empty_list.is_empty(), true); +} + #[test] fn widgets_list_should_highlight_the_selected_item() { let backend = TestBackend::new(10, 3);