Skip to main content

difference/
difference.rs

1//! Demonstrates how to subtract one relation from another with the `DIFFERENCE` operation.
2
3use 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}