lib-nested/nested/src/tree_nav.rs

72 lines
1.5 KiB
Rust
Raw Normal View History

2021-08-23 05:00:57 +02:00
use crate::list::ListCursorMode;
#[derive(Clone, Copy, Eq, PartialEq)]
pub enum TreeNavResult {
Continue,
Exit
}
/*
impl From<TreeNavResult> for TerminalEditorResult {
fn from(v: TreeNavResult) -> TerminalEditorResult {
match v {
TreeNavResult::Continue => TerminalEditorResult::Continue,
TreeNavResult::Exit => TerminalEditorResult::Exit
}
}
}
*/
2021-08-23 05:00:57 +02:00
#[derive(Clone, Eq, PartialEq)]
pub struct TreeCursor {
pub leaf_mode: ListCursorMode,
pub tree_addr: Vec<usize>
}
impl Default for TreeCursor {
fn default() -> Self {
TreeCursor {
leaf_mode: ListCursorMode::Select,
tree_addr: vec![]
}
}
}
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
}
2021-08-16 00:10:25 +02:00
fn goto(&mut self, new_cursor: TreeCursor) -> TreeNavResult {
TreeNavResult::Exit
}
2021-08-16 00:10:25 +02:00
fn get_cursor(&self) -> TreeCursor {
TreeCursor::default()
2021-08-16 00:10:25 +02:00
}
}
use crate::terminal::{TerminalView, TerminalEditor};
pub trait TerminalTreeEditor = TerminalEditor + TreeNav;