cross_level/
cross_level.rs1use ascii_dag::graph::DAG;
6
7fn main() {
8 println!("=== Cross-Level Edge Examples ===\n");
9
10 println!("1. Simple cross-level (Root -> Middle -> End, plus Root -> End directly):");
12 let mut dag = DAG::new();
13 dag.add_node(1, "Root");
14 dag.add_node(2, "Middle");
15 dag.add_node(3, "End");
16
17 dag.add_edge(1, 2); dag.add_edge(2, 3); dag.add_edge(1, 3); println!("{}\n", dag.render());
22
23 println!("2. Multiple cross-level edges:");
25 let mut dag = DAG::new();
26 dag.add_node(1, "A");
27 dag.add_node(2, "B");
28 dag.add_node(3, "C");
29 dag.add_node(4, "D");
30
31 dag.add_edge(1, 2); dag.add_edge(2, 3); dag.add_edge(3, 4); dag.add_edge(1, 4); println!("{}\n", dag.render());
37
38 println!("3. Complex graph with shortcuts:");
40 let mut dag = DAG::new();
41 dag.add_node(1, "Start");
42 dag.add_node(2, "Parse");
43 dag.add_node(3, "Compile");
44 dag.add_node(4, "Link");
45 dag.add_node(5, "Done");
46
47 dag.add_edge(1, 2); dag.add_edge(2, 3);
49 dag.add_edge(3, 4);
50 dag.add_edge(4, 5);
51 dag.add_edge(1, 5); println!("{}\n", dag.render());
54}