make_graph/
make_graph.rs

1use labelgraph::*;
2
3#[derive(Debug)]
4struct NodeData(i32);
5
6fn main() {
7    let mut g = DirectedLabelGraph::new();
8
9    let n1 = NodeData(2);
10    let n2 = NodeData(3);
11    let n3 = NodeData(4);
12
13    g.create_node("n1", n1);
14    g.create_node("n2", n2);
15    g.create_node("n3", n3);
16
17    println!("linking: n1 -> n2\n");
18    g.link_nodes("n1", "n2", 1);
19
20    println!(
21        "n1's data before being modified: {:?}",
22        g.get_node_data("n1")
23    );
24    {
25        // modify n1's data
26        let n1_data = g.get_mut_node_data("n1").unwrap();
27        n1_data.0 = 100;
28    }
29    println!("n1's data after modified: {:?}\n", g.get_node_data("n1"));
30
31    println!("Iter through node label and data:");
32    for nd in g.iter_node_label_and_data() {
33        println!("node data -> {:?}", nd)
34    }
35    println!();
36
37    println!("n1 outputs to: {:?}", g.get_outputs_for_node("n1"));
38    println!("n2 take input from: {:?}", g.get_inputs_for_node("n2"));
39}