1use {
2 cursive::{view::*, views::*, *},
3 cursive_tree::*,
4};
5
6fn main() {
9 let mut cursive = default();
10
11 let mut tree = SimpleTreeBackend::tree_view(());
12
13 tree.model.add_root(NodeKind::Leaf, (), "Hello".into());
16 tree.model.add_root(NodeKind::Branch, (), "World".into());
17
18 let world = tree.model.at_path_mut([1].into()).unwrap();
21 for i in 0..10 {
22 world.add_child(NodeKind::Leaf, (), format!("Child #{}", i + 1).into());
23 }
24
25 let mut gc = 0;
29 for c in 4..10 {
30 let child = tree.model.at_path_mut([1, c].into()).unwrap();
31 child.kind = NodeKind::Branch;
32 for _ in 0..10 {
33 child.add_child(NodeKind::Leaf, (), format!("Grandchild #{}", gc + 1).into());
34 gc += 1;
35 }
36 }
37
38 tree.model.expand(None).unwrap();
41
42 cursive.add_fullscreen_layer(Panel::new(tree.scrollable()));
43 cursive.add_global_callback('q', |cursive| cursive.quit());
44
45 cursive.run();
46}