feat!: cache last tree structure to simplify events

Things like key up/down dont require the items anymore to be used.
Instead a cached last state from last render is used.
This commit is contained in:
EdJoPaTo
2024-05-01 01:45:54 +02:00
parent 701be9315d
commit fdd2c5436a
5 changed files with 88 additions and 88 deletions
+4 -30
View File
@@ -56,35 +56,9 @@ where
result
}
#[cfg(test)]
fn get_example_tree_items() -> Vec<TreeItem<'static, &'static str>> {
vec![
TreeItem::new_leaf("a", "Alfa"),
TreeItem::new(
"b",
"Bravo",
vec![
TreeItem::new_leaf("c", "Charlie"),
TreeItem::new(
"d",
"Delta",
vec![
TreeItem::new_leaf("e", "Echo"),
TreeItem::new_leaf("f", "Foxtrot"),
],
)
.expect("all item identifiers are unique"),
TreeItem::new_leaf("g", "Golf"),
],
)
.expect("all item identifiers are unique"),
TreeItem::new_leaf("h", "Hotel"),
]
}
#[test]
fn get_opened_nothing_opened_is_top_level() {
let items = get_example_tree_items();
let items = TreeItem::example();
let opened = HashSet::new();
let result = flatten(&opened, &items);
let result_text = result
@@ -96,7 +70,7 @@ fn get_opened_nothing_opened_is_top_level() {
#[test]
fn get_opened_wrong_opened_is_only_top_level() {
let items = get_example_tree_items();
let items = TreeItem::example();
let mut opened = HashSet::new();
opened.insert(vec!["a"]);
opened.insert(vec!["b", "d"]);
@@ -110,7 +84,7 @@ fn get_opened_wrong_opened_is_only_top_level() {
#[test]
fn get_opened_one_is_opened() {
let items = get_example_tree_items();
let items = TreeItem::example();
let mut opened = HashSet::new();
opened.insert(vec!["b"]);
let result = flatten(&opened, &items);
@@ -123,7 +97,7 @@ fn get_opened_one_is_opened() {
#[test]
fn get_opened_all_opened() {
let items = get_example_tree_items();
let items = TreeItem::example();
let mut opened = HashSet::new();
opened.insert(vec!["b"]);
opened.insert(vec!["b", "d"]);