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}