[−][src]Struct dary::trie::Trie
トライ木の実装。 ダブル配列は直接構築することはできないので、トライ木を構築してから変換することで構築する。
Examples
use std::fmt::Debug; use dary::DoubleArray; use dary::Trie; use serde_derive::{Serialize, Deserialize}; fn main() { let key1 = String::from("foo"); let key2 = String::from("bar"); let key3 = String::from("baz"); let sample1 = Sample { surface: key1.clone(), cost: 1 }; let sample2 = Sample { surface: key1.clone(), cost: 2 }; let sample3 = Sample { surface: key2.clone(), cost: 1 }; let sample4 = Sample { surface: key3.clone(), cost: 1 }; let mut trie: Trie<Sample> = Trie::new(); trie.set(&key1, sample1.clone()); trie.set(&key1, sample2.clone()); trie.set(&key2, sample3.clone()); trie.set(&key3, sample4.clone()); let double_array = trie.to_double_array().ok().unwrap(); assert_eq!(vec![sample1, sample2], double_array.get(&key1).unwrap()); assert_eq!(vec![sample3] , double_array.get(&key2).unwrap()); assert_eq!(vec![sample4] , double_array.get(&key3).unwrap()); } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq)] struct Sample { surface: String, cost: usize, }
Methods
impl<T: Serialize + DeserializeOwned + Debug> Trie<T>
[src]
pub fn new() -> Trie<T>
[src]
pub fn set(&mut self, key: &str, value: T)
[src]
pub fn get(&self, key: &str) -> Option<&[T]>
[src]
pub fn to_double_array(self) -> Result<DoubleArray<T>, Error>
[src]
Auto Trait Implementations
impl<T> Send for Trie<T> where
T: Send,
T: Send,
impl<T> Sync for Trie<T> where
T: Sync,
T: Sync,
impl<T> Unpin for Trie<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for Trie<T> where
T: UnwindSafe,
T: UnwindSafe,
impl<T> RefUnwindSafe for Trie<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for T
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,