diff options
Diffstat (limited to 'pkg/bst/bst.go')
-rw-r--r-- | pkg/bst/bst.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/pkg/bst/bst.go b/pkg/bst/bst.go index 664937ba..f8426b12 100644 --- a/pkg/bst/bst.go +++ b/pkg/bst/bst.go @@ -52,6 +52,22 @@ func (b *BST) Insert(uuid string, topic string) { } } +func (b *BST) Contains(topic string) bool { + curr := b + for curr != nil { + switch { + case topic < curr.topic: + curr = curr.left + case topic > curr.topic: + curr = curr.right + case topic == curr.topic: + return true + } + } + + return false +} + func (b *BST) Get(topic string) map[string]struct{} { curr := b for curr != nil { |