提交 9ed0d389 编写于 作者: O obscuren

Generic trie

上级 00bb68d7
......@@ -191,7 +191,17 @@ func (t *Trie) Get(key string) string {
}
func (t *Trie) Delete(key string) {
t.Update(key, "")
t.mut.Lock()
defer t.mut.Unlock()
k := CompactHexDecode(key)
root := t.DeleteState(t.Root, k)
if _, ok := root.([]byte); !ok {
t.Root = t.cache.PutValue(root, true)
} else {
t.Root = root
}
}
func (t *Trie) GetState(node interface{}, key []int) interface{} {
......@@ -243,15 +253,7 @@ func (t *Trie) GetNode(node interface{}) *Value {
}
func (t *Trie) UpdateState(node interface{}, key []int, value string) interface{} {
if value != "" {
return t.InsertState(node, key, value)
} else {
// delete it
return t.DeleteState(node, key)
}
return t.Root
return t.InsertState(node, key, value)
}
func (t *Trie) Put(node interface{}) interface{} {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册