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}