1use darwen::prelude::{Relation, RelationBuilder, ScalarType};
4use darwen::{heading, tuple};
5
6fn all_numbers() -> Relation {
7 RelationBuilder::new()
8 .with_heading(heading!(number = ScalarType::Integer).unwrap())
9 .with_body(vec![
10 tuple!(number = 4).unwrap(),
11 tuple!(number = 8).unwrap(),
12 tuple!(number = 15).unwrap(),
13 tuple!(number = 16).unwrap(),
14 tuple!(number = 23).unwrap(),
15 tuple!(number = 42).unwrap(),
16 ])
17 .build()
18 .unwrap()
19}
20
21fn already_typed() -> Relation {
22 RelationBuilder::new()
23 .with_heading(heading!(number = ScalarType::Integer).unwrap())
24 .with_body(vec![
25 tuple!(number = 4).unwrap(),
26 tuple!(number = 8).unwrap(),
27 tuple!(number = 15).unwrap(),
28 ])
29 .build()
30 .unwrap()
31}
32
33fn main() {
34 let all_numbers = all_numbers();
35 let already_typed = already_typed();
36
37 println!("{}", all_numbers.difference(&already_typed).unwrap());
38}