kv_trie_rs/trie.rs
1use crate::internal_data_structure::naive_trie::NaiveTrie;
2use louds_rs::Louds;
3
4pub mod trie;
5pub mod trie_builder;
6
7pub struct Trie<K, V> {
8 louds: Louds,
9
10 /// (LoudsNodeNum - 2) -> TrieLabel
11 trie_labels: Vec<TrieLabel<K, V>>,
12}
13
14#[derive(Debug, Clone)]
15pub struct TrieBuilder<K, V> {
16 naive_trie: NaiveTrie<K, V>,
17}
18
19struct TrieLabel<K, V> {
20 key: K,
21 value: Option<V>,
22 is_terminal: bool,
23}