mytrie 0.2.2

Trie implmentation
Documentation
use crate::Trie;

#[test]
fn insert() {
    let trie = Trie::from(["Hallo", "Hallöchen!", "Tschüs!"]);
    let mut suffixes: Vec<String> = trie.iter_content("").collect();
    suffixes.sort();
    assert_eq!(
        vec![
            String::from("Hallo"),
            String::from("Hallöchen!"),
            String::from("Tschüs!")
        ],
        suffixes
    );
}

#[test]
fn prefix_query() {
    let trie = Trie::from(["Hallo", "Hallöchen!", "Tschüs!"]);
    let mut suffixes: Vec<String> = trie.iter_content("Hall").collect();
    suffixes.sort();
    assert_eq!(
        vec![String::from("Hallo"), String::from("Hallöchen!")],
        suffixes
    );
}

#[test]
fn remove_long() {
    let mut trie = Trie::from(["Hallo", "Hallöchen!", "Tschüs!"]);
    trie.remove("Hallöchen!");
    let mut suffixes: Vec<String> = trie.iter_content("").collect();
    suffixes.sort();
    assert_eq!(
        vec![String::from("Hallo"), String::from("Tschüs!")],
        suffixes
    );
}

#[test]
#[should_panic]
fn remove_nonexistent() {
    let mut trie = Trie::default();
    trie.remove("")
        .expect("content to remove is not present in trie");
}

#[test]
fn from_iter() {
    let _: Trie = ["aaa", "aab", "aac"].iter().collect();
}