]> Sergey Matveev's repositories - btrtrc.git/blobdiff - typed-roaring/iterator.go
Use reusable roaring iterators
[btrtrc.git] / typed-roaring / iterator.go
index 359b7ffb761999c2adeff9b57c61aba7e9492c6f..8766db1750d6aa8d8fb86b67a3d4e96d206c6f90 100644 (file)
@@ -5,13 +5,17 @@ import (
 )
 
 type Iterator[T BitConstraint] struct {
-       roaring.IntPeekable
+       roaring.IntIterator
 }
 
-func (t Iterator[T]) Next() T {
-       return T(t.IntPeekable.Next())
+func (t *Iterator[T]) Next() T {
+       return T(t.IntIterator.Next())
 }
 
-func (t Iterator[T]) AdvanceIfNeeded(minVal T) {
-       t.IntPeekable.AdvanceIfNeeded(uint32(minVal))
+func (t *Iterator[T]) AdvanceIfNeeded(minVal T) {
+       t.IntIterator.AdvanceIfNeeded(uint32(minVal))
+}
+
+func (t *Iterator[T]) Initialize(a *Bitmap[T]) {
+       t.IntIterator.Initialize(&a.Bitmap)
 }