#[derive(Debug)] pub struct ContentList { pub list: Vec, pub index: usize, } impl ContentList { pub fn new() -> Self { ContentList { list: Vec::new(), index: 0, } } // Go to next item in list pub fn next(&mut self) { let len = self.list.len(); if len != 0 && self.index < len - 1 { self.index += 1; } } /// Go to previous item in list pub fn prev(&mut self) { if self.index != 0 { self.index -= 1; } } pub fn reset_index(&mut self) { self.index = 0; } /// Returns the self.list[self.index] item pub fn get_item_at_current_index(&mut self) -> &T { self.list.get(self.index).unwrap() } } impl Default for ContentList { fn default() -> Self { Self::new() } }