Skip to main content

product/
product.rs

1//! Demonstrates how to build combinations with the `PRODUCT` operation.
2
3use darwen::prelude::{Relation, RelationBuilder, ScalarType};
4use darwen::{heading, tuple};
5
6fn singers() -> Relation {
7    RelationBuilder::new()
8        .with_heading(heading!(name = ScalarType::String).unwrap())
9        .with_body(vec![
10            tuple!(name = "Monica").unwrap(),
11            tuple!(name = "Erica").unwrap(),
12            tuple!(name = "Rita").unwrap(),
13        ])
14        .build()
15        .unwrap()
16}
17
18fn elements() -> Relation {
19    RelationBuilder::new()
20        .with_heading(heading!(element = ScalarType::String).unwrap())
21        .with_body(vec![
22            tuple!(element = "Helium").unwrap(),
23            tuple!(element = "Neon").unwrap(),
24            tuple!(element = "Argon").unwrap(),
25        ])
26        .build()
27        .unwrap()
28}
29
30fn main() {
31    let singers = singers();
32    let elements = elements();
33
34    println!("{}", singers.product(&elements).unwrap());
35}