kermit_algos/
join_algo.rs

1//! This module defines the `JoinAlgo` trait, used as a base for join
2//! algorithms.
3
4use {crate::JoinQuery, kermit_iters::JoinIterable, std::collections::HashMap};
5
6/// The `JoinAlgo` trait is used as a base for join algorithms.
7pub trait JoinAlgo<DS>
8where
9    DS: JoinIterable,
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        query: JoinQuery, datastructures: HashMap<String, &DS>,
15    ) -> impl Iterator<Item = Vec<usize>>;
16}