#[derive(Eq, PartialEq)] pub enum TreeNavResult { Continue, Exit } pub trait TreeNav { fn up(&mut self) -> TreeNavResult { TreeNavResult::Exit } fn dn(&mut self) -> TreeNavResult { TreeNavResult::Exit } fn pxev(&mut self) -> TreeNavResult { TreeNavResult::Exit } fn nexd(&mut self) -> TreeNavResult { TreeNavResult::Exit } fn goto_home(&mut self) -> TreeNavResult { TreeNavResult::Exit } fn goto_end(&mut self) -> TreeNavResult { TreeNavResult::Exit } fn goto(&mut self, tree_addr: Vec<usize>) -> TreeNavResult { TreeNavResult::Exit } fn get_cursor(&self) -> Option<Vec<usize>> { None } } use crate::terminal::{TerminalView, TerminalEditor}; pub trait TerminalTreeEditor = TerminalEditor + TreeNav;