pub trait Navigable { fn move_next(&mut self) -> NavigationResult; fn move_prev(&mut self) -> NavigationResult; } pub enum NavigationResult { Moved(Option), LastOption, }