use std::{borrow::Borrow, hash::Hash}; use self::map::PrefixMap; pub use self::map::PrefixNode; mod key; mod map; pub use key::KeySeq; #[derive(Debug)] pub struct KeyMap { map: PrefixMap, } impl KeyMap { pub fn new() -> Self { Self { map: PrefixMap::new(), } } pub fn set(&mut self, key: KeySeq, value: T) { self.map.insert(key, value); } pub fn get(&self, key: &N) -> Option<&PrefixNode> where KeySeq: Borrow, N: Eq + Hash + ?Sized, { self.map.get(key) } } impl FromIterator<(KeySeq, A)> for KeyMap { fn from_iter>(iter: T) -> Self { Self { map: PrefixMap::from_iter(iter), } } }