pub struct DecisionTable { /* private fields */ }
Implementations§
Source§impl DecisionTable
impl DecisionTable
Sourcepub fn new<T1, T2>(columns: T2) -> Self
pub fn new<T1, T2>(columns: T2) -> Self
Create a new DecisionTable with rows having specified number of input columns
Examples found in repository?
examples/wikipedia2.rs (line 17)
15fn without_dont_care_symbol() {
16 let boolean_domain = Domain::from(vec!["no", "yes"]);
17 let mut table = DecisionTable::new(vec![&boolean_domain, &boolean_domain]);
18
19 table.add(Row::new(vec!["yes", "yes"], "100"));
20 table.add(Row::new(vec!["no", "yes"], "100"));
21 table.add(Row::new(vec!["yes", "no"], "011"));
22 table.add(Row::new(vec!["no", "no"], "001"));
23
24 // Complete!
25 print_completeness(&table);
26
27 table.remove(&Row::new(vec!["no", "yes"], "100"));
28
29 // Incomplete!
30 print_completeness(&table);
31}
More examples
examples/wikipedia1.rs (line 17)
15fn main() {
16 let boolean_domain = Domain::from(vec!["no", "yes"]);
17 let mut table = DecisionTable::new(vec![&boolean_domain, &boolean_domain, &boolean_domain]);
18
19 table.add(Row::new(vec!["no", "yes", "no"], "01110"));
20 table.add(Row::new(vec!["no", "yes", "yes"], "00011"));
21 table.add(Row::new(vec!["no", "no", "no"], "11100"));
22 table.add(Row::new(vec!["no", "no", "yes"], "00001"));
23 table.add(Row::new(vec!["yes", "yes", "no"], "00100"));
24 table.add(Row::new(vec!["yes", "yes", "yes"], "00010"));
25 table.add(Row::new(vec!["yes", "no", "no"], "00100"));
26 table.add(Row::new(vec!["yes", "no", "yes"], "00000"));
27
28 // Complete!
29 print_completeness(&table);
30
31 table.remove(&Row::new(vec!["yes", "no", "yes"], "00000"));
32
33 // Incomplete!
34 print_completeness(&table);
35}
pub fn columns_len(&self) -> usize
pub fn rows_len(&self) -> usize
pub fn contains<'a, T>(&self, input: T) -> bool
Sourcepub fn add(&mut self, row: Row)
pub fn add(&mut self, row: Row)
Examples found in repository?
examples/wikipedia2.rs (line 19)
15fn without_dont_care_symbol() {
16 let boolean_domain = Domain::from(vec!["no", "yes"]);
17 let mut table = DecisionTable::new(vec![&boolean_domain, &boolean_domain]);
18
19 table.add(Row::new(vec!["yes", "yes"], "100"));
20 table.add(Row::new(vec!["no", "yes"], "100"));
21 table.add(Row::new(vec!["yes", "no"], "011"));
22 table.add(Row::new(vec!["no", "no"], "001"));
23
24 // Complete!
25 print_completeness(&table);
26
27 table.remove(&Row::new(vec!["no", "yes"], "100"));
28
29 // Incomplete!
30 print_completeness(&table);
31}
More examples
examples/wikipedia1.rs (line 19)
15fn main() {
16 let boolean_domain = Domain::from(vec!["no", "yes"]);
17 let mut table = DecisionTable::new(vec![&boolean_domain, &boolean_domain, &boolean_domain]);
18
19 table.add(Row::new(vec!["no", "yes", "no"], "01110"));
20 table.add(Row::new(vec!["no", "yes", "yes"], "00011"));
21 table.add(Row::new(vec!["no", "no", "no"], "11100"));
22 table.add(Row::new(vec!["no", "no", "yes"], "00001"));
23 table.add(Row::new(vec!["yes", "yes", "no"], "00100"));
24 table.add(Row::new(vec!["yes", "yes", "yes"], "00010"));
25 table.add(Row::new(vec!["yes", "no", "no"], "00100"));
26 table.add(Row::new(vec!["yes", "no", "yes"], "00000"));
27
28 // Complete!
29 print_completeness(&table);
30
31 table.remove(&Row::new(vec!["yes", "no", "yes"], "00000"));
32
33 // Incomplete!
34 print_completeness(&table);
35}
Sourcepub fn remove(&mut self, row: &Row) -> bool
pub fn remove(&mut self, row: &Row) -> bool
Returns true
if the removed row existed
Examples found in repository?
examples/wikipedia2.rs (line 27)
15fn without_dont_care_symbol() {
16 let boolean_domain = Domain::from(vec!["no", "yes"]);
17 let mut table = DecisionTable::new(vec![&boolean_domain, &boolean_domain]);
18
19 table.add(Row::new(vec!["yes", "yes"], "100"));
20 table.add(Row::new(vec!["no", "yes"], "100"));
21 table.add(Row::new(vec!["yes", "no"], "011"));
22 table.add(Row::new(vec!["no", "no"], "001"));
23
24 // Complete!
25 print_completeness(&table);
26
27 table.remove(&Row::new(vec!["no", "yes"], "100"));
28
29 // Incomplete!
30 print_completeness(&table);
31}
More examples
examples/wikipedia1.rs (line 31)
15fn main() {
16 let boolean_domain = Domain::from(vec!["no", "yes"]);
17 let mut table = DecisionTable::new(vec![&boolean_domain, &boolean_domain, &boolean_domain]);
18
19 table.add(Row::new(vec!["no", "yes", "no"], "01110"));
20 table.add(Row::new(vec!["no", "yes", "yes"], "00011"));
21 table.add(Row::new(vec!["no", "no", "no"], "11100"));
22 table.add(Row::new(vec!["no", "no", "yes"], "00001"));
23 table.add(Row::new(vec!["yes", "yes", "no"], "00100"));
24 table.add(Row::new(vec!["yes", "yes", "yes"], "00010"));
25 table.add(Row::new(vec!["yes", "no", "no"], "00100"));
26 table.add(Row::new(vec!["yes", "no", "yes"], "00000"));
27
28 // Complete!
29 print_completeness(&table);
30
31 table.remove(&Row::new(vec!["yes", "no", "yes"], "00000"));
32
33 // Incomplete!
34 print_completeness(&table);
35}
Sourcepub fn is_complete(&self) -> bool
pub fn is_complete(&self) -> bool
Returns true
if the table includes every possible combination of inputs.
Examples found in repository?
More examples
Auto Trait Implementations§
impl Freeze for DecisionTable
impl RefUnwindSafe for DecisionTable
impl Send for DecisionTable
impl Sync for DecisionTable
impl Unpin for DecisionTable
impl UnwindSafe for DecisionTable
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more