diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/util.rs | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/util.rs b/src/util.rs index 3e940f1..7ea5389 100644 --- a/src/util.rs +++ b/src/util.rs @@ -75,7 +75,7 @@ impl<T> Trie<T> { } else { let bytes = str::as_bytes_slice(s); - insert( + self.insert_vec( &mut self.root.children[bytes[0]], vec::tail(bytes), v @@ -105,25 +105,25 @@ impl<T> Trie<T> { false } } -} -fn insert<T> (loc: &mut Option<~TrieNode<T>>, bytes: &[u8], v: T) { - let mut tmp = None; - tmp <-> *loc; + fn insert_vec (&self, loc: &mut Option<~TrieNode<T>>, bytes: &[u8], v: T) { + let mut tmp = None; + tmp <-> *loc; - let mut new = match tmp { - Some(node) => node, - None => ~TrieNode(), - }; + let mut new = match tmp { + Some(node) => node, + None => ~TrieNode(), + }; - if vec::len(bytes) == 0 { - new.value = Some(v); - } - else { - insert(&mut new.children[bytes[0]], vec::tail(bytes), v); - } + if vec::len(bytes) == 0 { + new.value = Some(v); + } + else { + self.insert_vec(&mut new.children[bytes[0]], vec::tail(bytes), v); + } - *loc = Some(new); + *loc = Some(new); + } } impl<T> TrieNode<T> { |