kermit_algos/join_algo.rs
1//! This module defines the `JoinAlgo` trait, used as a base for join
2//! algorithms.
3
4use kermit_iters::Joinable;
5
6/// The `JoinAlgo` trait is used as a base for join algorithms.
7pub trait JoinAlgo<ITB>
8where
9 ITB: Joinable,
10{
11 /// Joins the given iterables based on the specified join plan.
12 /// Returns an iterator over the resulting join.
13 fn join_iter(
14 variables: Vec<usize>, rel_variables: Vec<Vec<usize>>, iterables: Vec<&ITB>,
15 ) -> impl Iterator<Item = Vec<ITB::KT>>;
16}