kermit/
lib.rs

1pub mod algos {
2    pub use kermit_algos::leapfrog_triejoin::LeapfrogTriejoin;
3}
4
5pub mod kvs {
6    pub use kermit_kvs::{anyvaltype::AnyValType, naivestore::NaiveStore};
7}
8
9pub mod ds {
10    pub use kermit_ds::{
11        ds::relation_trie::RelationTrie,
12        relation::{Builder, RelationBuilder},
13    };
14}
15
16pub mod db;
17
18use {kermit_algos::join_algo::JoinAlgo, kermit_ds::relation::Relation};
19
20pub fn compute_join<R, JA>(
21    input: Vec<Vec<Vec<R::KT>>>, variables: Vec<usize>, rel_variables: Vec<Vec<usize>>,
22) -> Vec<Vec<R::KT>>
23where
24    R: Relation,
25    JA: JoinAlgo<R>,
26{
27    let relations: Vec<_> = input
28        .into_iter()
29        .map(|tuples| R::from_tuples(tuples))
30        .collect();
31    let iterables = relations.iter().collect::<Vec<_>>();
32    JA::join(variables, rel_variables, iterables)
33}