1use ascii_dag::graph::DAG;
2
3fn main() {
4 println!("=== Basic Usage Examples ===\n");
5
6 println!("1. Simple Chain (A -> B -> C):");
8 let dag = DAG::from_edges(&[(1, "A"), (2, "B"), (3, "C")], &[(1, 2), (2, 3)]);
9 println!("{}\n", dag.render());
10
11 println!("2. Diamond Pattern:");
13 let dag = DAG::from_edges(
14 &[(1, "Root"), (2, "Left"), (3, "Right"), (4, "Merge")],
15 &[(1, 2), (1, 3), (2, 4), (3, 4)],
16 );
17 println!("{}\n", dag.render());
18
19 println!("3. Builder API:");
21 let mut dag = DAG::new();
22 dag.add_node(1, "Parse");
23 dag.add_node(2, "Compile");
24 dag.add_node(3, "Link");
25 dag.add_edge(1, 2);
26 dag.add_edge(2, 3);
27 println!("{}\n", dag.render());
28
29 println!("4. Multi-Convergence:");
31 let dag = DAG::from_edges(
32 &[(1, "E1"), (2, "E2"), (3, "E3"), (4, "Final")],
33 &[(1, 4), (2, 4), (3, 4)],
34 );
35 println!("{}\n", dag.render());
36}