From e1c553a0a88da37c0d2a6ad1f8af60a3fe4c6ef2 Mon Sep 17 00:00:00 2001 From: Vincent Emonet Date: Thu, 22 Aug 2024 20:38:05 +0200 Subject: [PATCH] add new features docs to readme --- README.md | 15 ++++++++++++++- tests/trie_tests.rs | 1 - 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bae3940..26a2270 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,18 @@ trie.insert("ab".bytes(), "AB"); trie.insert("abc".bytes(), "ABC"); trie.insert("abcde".bytes(), "ABCDE"); +// Find all potential prefixes let prefixes = trie.find_prefixes("abcd".bytes()); assert_eq!(prefixes, vec![&"A", &"AB", &"ABC"]); +// Find the longest prefix let longest = trie.find_longest_prefix("abcd".bytes()); assert_eq!(longest, Some("ABC").as_ref()); + +// Find longest with length +if let Some((length, prefix)) = trie.find_longest_prefix_len("abcd".bytes()) { + println!("Longest prefix: {} {}", prefix, length); +} ``` ### 🔍 Find postfixes @@ -85,14 +92,20 @@ let mut trie = Trie::new(); trie.insert("app".bytes(), "App"); trie.insert("applet".bytes(), "Applet"); +// Get a key assert!(trie.contains_key("app".bytes())); assert!(!trie.contains_key("not_existing_key".bytes())); assert_eq!(trie.get("app".bytes()), Some("App").as_ref()); assert_eq!(trie.get("none".bytes()), None.as_ref()); -for (k, v) in trie.iter() { +// Iterate the trie +for (k, v) in &trie { println!("kv: {:?} {}", k, v); } + +// Remove a key +trie.remove("app".bytes()); +assert!(!trie.contains_key("app".bytes())); ``` ## 🏷️ Features diff --git a/tests/trie_tests.rs b/tests/trie_tests.rs index a699464..6150048 100644 --- a/tests/trie_tests.rs +++ b/tests/trie_tests.rs @@ -77,7 +77,6 @@ mod tests { t.insert(test.clone(), String::from("test")); t.insert(tes.clone(), String::from("tes")); - // TODO: for (k, v) in &t { for (k, v) in &t { assert!(std::str::from_utf8(&k).unwrap().starts_with("tes")); assert!(v.starts_with("tes"));