1mod column_trie;
2mod tree_trie;
3
4use {clap::ValueEnum, std::str::FromStr};
5pub use {column_trie::ColumnTrie, tree_trie::TreeTrie};
6
7#[derive(Copy, Clone, PartialEq, Eq, Debug, ValueEnum)]
8pub enum IndexStructure {
9 ColumnTrie,
10 TreeTrie,
11}
12
13impl FromStr for IndexStructure {
14 type Err = String;
15
16 fn from_str(s: &str) -> Result<Self, Self::Err> {
17 match s {
18 | "column_trie" => Ok(Self::ColumnTrie),
19 | "tree_trie" => Ok(Self::TreeTrie),
20 | _ => Err(format!("Invalid index structure: {}", s)),
21 }
22 }
23}