lib-nested/lib-nested-core/src/edit_tree/cursor.rs

46 lines
953 B
Rust
Raw Normal View History

use {
2023-02-13 18:39:45 +01:00
crate::editors::list::ListCursorMode
};
//<<<<>>>><<>><><<>><<<*>>><<>><><<>><<<<>>>>
#[derive(Clone, Eq, PartialEq, Debug)]
pub struct TreeCursor {
pub leaf_mode: ListCursorMode,
pub tree_addr: Vec<isize>
}
impl TreeCursor {
pub fn home() -> Self {
TreeCursor {
leaf_mode: ListCursorMode::Insert,
tree_addr: vec![0],
}
}
pub fn none() -> Self {
TreeCursor {
leaf_mode: ListCursorMode::Select,
tree_addr: vec![],
}
}
2023-11-11 18:00:47 +01:00
pub fn get_subcursor(&self, depth: usize) -> TreeCursor {
TreeCursor {
leaf_mode: self.leaf_mode,
tree_addr: if depth < self.tree_addr.len() {
self.tree_addr[ depth.. ].iter().cloned().collect()
} else {
vec![]
}
}
}
}
impl Default for TreeCursor {
fn default() -> Self {
TreeCursor::none()
}
}