kermit_algos/
lib.rs

1mod join_algo;
2mod leapfrog_join;
3mod leapfrog_triejoin;
4mod queries;
5
6use {clap::ValueEnum, std::str::FromStr};
7pub use {
8    join_algo::JoinAlgo, leapfrog_triejoin::LeapfrogTriejoin, queries::join_query::JoinQuery,
9};
10
11#[derive(Copy, Clone, PartialEq, Eq, Debug, ValueEnum)]
12pub enum JoinAlgorithm {
13    LeapfrogTriejoin,
14}
15
16impl FromStr for JoinAlgorithm {
17    type Err = String;
18
19    fn from_str(s: &str) -> Result<Self, Self::Err> {
20        match s {
21            | "leapfrog_triejoin" => Ok(Self::LeapfrogTriejoin),
22            | _ => Err(format!("Invalid join algorithm: {}", s)),
23        }
24    }
25}