index/
index.rs

1/*
2This example shows working with indices.
3*/
4
5extern crate history_tree;
6
7use history_tree::HistoryTree;
8
9fn main() {
10    let mut ht = HistoryTree::new();
11    let root = ht.root();
12    let _assets = ht.add(root);
13    let notes = ht.add(root);
14    let mut bar = ht.add(notes);
15    let _baz = ht.add(bar);
16    ht.print(root, 0);
17
18    ht.change(&mut bar);
19    ht.print(root, 0);
20
21    let src = ht.add(root);
22    let _file = ht.add(src);
23    let _foo = ht.add(src);
24    ht.print(root, 0);
25
26    ht.delete(bar);
27    ht.print(root, 0);
28
29    println!("--------- undo ----------");
30    for _ in 0..ht.records.len() - 1 {
31        ht.undo();
32        ht.print(root, 0);
33    }
34
35    println!("--------- redo ----------");
36    for _ in 0..ht.records.len() - 1 {
37        ht.redo();
38        ht.print(root, 0);
39    }
40}