pub mod naive_trie_b_f_iter;
pub mod naive_trie_impl;
#[cfg(feature = "mem_dbg")]
use mem_dbg::MemDbg;
#[derive(Debug, Clone)]
#[cfg_attr(feature = "mem_dbg", derive(mem_dbg::MemDbg, mem_dbg::MemSize))]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub enum NaiveTrie<Label, Value> {
Root(NaiveTrieRoot<Label, Value>),
IntermOrLeaf(NaiveTrieIntermOrLeaf<Label, Value>),
PhantomSibling,
}
#[derive(Debug, Clone)]
#[cfg_attr(feature = "mem_dbg", derive(mem_dbg::MemDbg, mem_dbg::MemSize))]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct NaiveTrieRoot<Label, Value> {
children: Vec<NaiveTrie<Label, Value>>,
}
#[derive(Debug, Clone)]
#[cfg_attr(feature = "mem_dbg", derive(mem_dbg::MemDbg, mem_dbg::MemSize))]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct NaiveTrieIntermOrLeaf<Label, Value> {
children: Vec<NaiveTrie<Label, Value>>,
pub(crate) label: Label,
pub(crate) value: Option<Value>,
}