Template
1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo synced 2024-11-28 20:56:11 +01:00
forgejo/vendor/github.com/RoaringBitmap/roaring/manyiterator.go

33 lines
539 B
Go
Raw Normal View History

2018-05-19 14:49:46 +02:00
package roaring
type manyIterable interface {
nextMany(hs uint32, buf []uint32) int
nextMany64(hs uint64, buf []uint64) int
2018-05-19 14:49:46 +02:00
}
func (si *shortIterator) nextMany(hs uint32, buf []uint32) int {
2018-05-19 14:49:46 +02:00
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
}
func (si *shortIterator) nextMany64(hs uint64, buf []uint64) int {
n := 0
l := si.loc
s := si.slice
for n < len(buf) && l < len(s) {
buf[n] = uint64(s[l]) | hs
l++
n++
}
si.loc = l
return n
}