1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
//! An example component for testing the variable priority adjuster. use crate::{component, model::Component, ret}; /// An example that would component that would be solved /// in an unexpected manner unless variable priorities are adjusted. pub fn priority_adjust() -> Component<String> { component! { component PriorityAdjust { let _a: String = "a", _b: String = "b", _c: String = "c", _d: String = ""; constraint Ab { m1(_a: &String) -> [_b] = ret!["a"]; m2(_b: &String) -> [_a] = ret!["b"]; } constraint Bcd { m3(_b: &String, _c: &String) -> [_d] = ret!["b & c"]; m4(_d: &String) -> [_b, _c] = ret!["d"]; } } } }