readme_example/
readme_example.rs1use std::collections::HashMap;
2use pldag::{Bound, Pldag};
3
4fn main() {
5 let mut pldag: Pldag = Pldag::new();
9
10 pldag.set_primitive("x", (0, 1));
12 pldag.set_primitive("y", (0, 1));
13 pldag.set_primitive("z", (0, 1));
14
15 let root = pldag.set_or(vec!["x", "y", "z"]).unwrap();
17
18 let mut dag = pldag.sub_dag(vec![root.clone()]).unwrap();
20
21 let mut inputs: HashMap<&str, Bound> = HashMap::new();
23 let validated = Pldag::propagate_dag(&mut dag, inputs.clone()).unwrap();
24 println!("Root valid? {}", *validated.get(&root).unwrap() == (1, 1)); inputs.insert("x", (0, 0));
30 let revalidated = pldag.propagate(inputs.clone()).unwrap();
31 println!("Root valid? {}", *revalidated.get(&root).unwrap() == (1, 1)); inputs.insert("y", (1, 1));
35 inputs.insert("z", (1, 1));
36 let revalidated = pldag.propagate(inputs.clone()).unwrap();
37 println!("Root valid? {}", *revalidated.get(&root).unwrap() == (1, 1)); let mut pldag = Pldag::new();
41 pldag.set_primitive("x", (0, 1));
42 pldag.set_primitive("y", (0, 1));
43 pldag.set_primitive("z", (0, 1));
44 let root = pldag.set_or(vec!["x", "y", "z"]).unwrap();
45 let mut dag = pldag.sub_dag(vec![root.clone()]).unwrap();
46
47 let validated = dag.propagate(inputs).unwrap();
49 println!("root bound = {:?}", validated[&root]);
50}