aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/RoaringBitmap/roaring/manyiterator.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/RoaringBitmap/roaring/manyiterator.go')
-rw-r--r--vendor/github.com/RoaringBitmap/roaring/manyiterator.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/vendor/github.com/RoaringBitmap/roaring/manyiterator.go b/vendor/github.com/RoaringBitmap/roaring/manyiterator.go
new file mode 100644
index 0000000000..b4f630a7b4
--- /dev/null
+++ b/vendor/github.com/RoaringBitmap/roaring/manyiterator.go
@@ -0,0 +1,23 @@
+package roaring
+
+type manyIterable interface {
+ nextMany(hs uint32, buf []uint32) int
+}
+
+type manyIterator struct {
+ slice []uint16
+ loc int
+}
+
+func (si *manyIterator) nextMany(hs uint32, buf []uint32) int {
+ n := 0
+ l := si.loc
+ s := si.slice
+ for n < len(buf) && l < len(s) {
+ buf[n] = uint32(s[l]) | hs
+ l++
+ n++
+ }
+ si.loc = l
+ return n
+}