fix: Changed the implementation to not require the direct use of identifiers, and to instead generate them using the hashes of the contents of each tree item

This commit is contained in:
2024-11-14 17:35:40 -07:00
parent 8a91f662dd
commit 6c10db760d
6 changed files with 198 additions and 183 deletions
+23 -28
View File
@@ -11,8 +11,8 @@ use managarr_tree_widget::{Tree, TreeItem, TreeState};
#[must_use]
struct App {
state: TreeState<&'static str>,
items: Vec<TreeItem<&'static str, &'static str>>,
state: TreeState,
items: Vec<TreeItem<&'static str>>,
}
impl App {
@@ -20,62 +20,57 @@ impl App {
Self {
state: TreeState::default(),
items: vec![
TreeItem::new_leaf("a", "Alfa"),
TreeItem::new_leaf( "Alfa"),
TreeItem::new(
"b",
"Bravo",
vec![
TreeItem::new_leaf("c", "Charlie"),
TreeItem::new_leaf( "Charlie"),
TreeItem::new(
"d",
"Delta",
vec![
TreeItem::new_leaf("e", "Echo"),
TreeItem::new_leaf("f", "Foxtrot"),
TreeItem::new_leaf("Echo"),
TreeItem::new_leaf( "Foxtrot"),
],
)
.expect("all item identifiers are unique"),
TreeItem::new_leaf("g", "Golf"),
TreeItem::new_leaf( "Golf"),
],
)
.expect("all item identifiers are unique"),
TreeItem::new_leaf("h", "Hotel"),
TreeItem::new_leaf("Hotel"),
TreeItem::new(
"i",
"India",
vec![
TreeItem::new_leaf("j", "Juliett"),
TreeItem::new_leaf("k", "Kilo"),
TreeItem::new_leaf("l", "Lima"),
TreeItem::new_leaf("m", "Mike"),
TreeItem::new_leaf("n", "November"),
TreeItem::new_leaf( "Juliet"),
TreeItem::new_leaf( "Kilo"),
TreeItem::new_leaf( "Lima"),
TreeItem::new_leaf( "Mike"),
TreeItem::new_leaf( "November"),
],
)
.expect("all item identifiers are unique"),
TreeItem::new_leaf("o", "Oscar"),
TreeItem::new_leaf( "Oscar"),
TreeItem::new(
"p",
"Papa",
vec![
TreeItem::new_leaf("q", "Quebec"),
TreeItem::new_leaf("r", "Romeo"),
TreeItem::new_leaf("s", "Sierra"),
TreeItem::new_leaf("t", "Tango"),
TreeItem::new_leaf("u", "Uniform"),
TreeItem::new_leaf( "Quebec"),
TreeItem::new_leaf( "Romeo"),
TreeItem::new_leaf( "Sierra"),
TreeItem::new_leaf( "Tango"),
TreeItem::new_leaf( "Uniform"),
TreeItem::new(
"v",
"Victor",
vec![
TreeItem::new_leaf("w", "Whiskey"),
TreeItem::new_leaf("x", "Xray"),
TreeItem::new_leaf("y", "Yankee"),
TreeItem::new_leaf( "Whiskey"),
TreeItem::new_leaf( "Xray"),
TreeItem::new_leaf( "Yankee"),
],
)
.expect("all item identifiers are unique"),
],
)
.expect("all item identifiers are unique"),
TreeItem::new_leaf("z", "Zulu"),
TreeItem::new_leaf( "Zulu"),
],
}
}