-// Use an iterator to jump between dirty bits.
-type undirtiedChunksIter struct {
- TorrentDirtyChunks *typedRoaring.Bitmap[RequestIndex]
- StartRequestIndex RequestIndex
- EndRequestIndex RequestIndex
-}
-
-func (me *undirtiedChunksIter) Iter(f func(chunkIndexType)) {
- it := me.TorrentDirtyChunks.Iterator()
- startIndex := me.StartRequestIndex
- endIndex := me.EndRequestIndex
- it.AdvanceIfNeeded(startIndex)
- lastDirty := startIndex - 1
+func iterBitmapUnsetInRange[T typedRoaring.BitConstraint](it *typedRoaring.Iterator[T], start, end T, f func(T)) {
+ it.AdvanceIfNeeded(start)
+ lastDirty := start - 1