chore: decrease DomainTrie's memory use

This commit is contained in:
wwqgtxx
2022-11-30 18:50:46 +08:00
parent 1d9e320087
commit 84caee94af
6 changed files with 58 additions and 12 deletions

View File

@@ -73,11 +73,7 @@ func (t *DomainTrie[T]) insert(parts []string, data T) {
// reverse storage domain part to save space
for i := len(parts) - 1; i >= 0; i-- {
part := parts[i]
if !node.hasChild(part) {
node.addChild(part, newNode[T]())
}
node = node.getChild(part)
node = node.getOrNewChild(part)
}
node.setData(data)
@@ -123,6 +119,10 @@ func (t *DomainTrie[T]) search(node *Node[T], parts []string) *Node[T] {
return node.getChild(dotWildcard)
}
func (t *DomainTrie[T]) FinishInsert() {
t.root.finishAdd()
}
// New returns a new, empty Trie.
func New[T any]() *DomainTrie[T] {
return &DomainTrie[T]{root: newNode[T]()}