Skip to content

feat: add reverse and range bulk-read cursor methods - #230

Merged
Dr-Emann merged 1 commit into
RoaringBitmap:masterfrom
Dr-Emann:push-tkmukkmttzpx
Jun 25, 2026
Merged

feat: add reverse and range bulk-read cursor methods#230
Dr-Emann merged 1 commit into
RoaringBitmap:masterfrom
Dr-Emann:push-tkmukkmttzpx

Conversation

@Dr-Emann

Copy link
Copy Markdown
Member

Expose the iterator helpers added in CRoaring 4.7.0 as safe methods on both BitmapCursor and Bitmap64Cursor:

  • read_many_rev (roaring_*_iterator_read_backward)
  • read_many_ranges (roaring_*_iterator_read_ranges)
  • read_many_ranges_rev (roaring_*_iterator_read_prev_ranges)

The range methods read maximal runs of consecutive values into a new RangeInclusive<Idx> type, which is repr(C) and ABI-compatible with roaring_uint32_range_closed_t / roaring64_range_closed_t (enforced by const ABI asserts). It implements RangeBounds, so ranges read back from a cursor can be passed straight to add_range, contains_range, flip, etc., and converts to/from both core::ops and core::range RangeInclusive.

Bumps the croaring-sys dependency to 4.7.0.

Expose the iterator helpers added in CRoaring 4.7.0 as safe methods on
both BitmapCursor and Bitmap64Cursor:

- read_many_rev          (roaring_*_iterator_read_backward)
- read_many_ranges       (roaring_*_iterator_read_ranges)
- read_many_ranges_rev   (roaring_*_iterator_read_prev_ranges)

The range methods read maximal runs of consecutive values into a new
`RangeInclusive<Idx>` type, which is repr(C) and ABI-compatible with
`roaring_uint32_range_closed_t` / `roaring64_range_closed_t` (enforced
by const ABI asserts). It implements RangeBounds, so ranges read back
from a cursor can be passed straight to add_range, contains_range, flip,
etc., and converts to/from both core::ops and core::range
RangeInclusive.

Bumps the croaring-sys dependency to 4.7.0.
@Dr-Emann
Dr-Emann merged commit 224e1e8 into RoaringBitmap:master Jun 25, 2026
18 checks passed
@Dr-Emann
Dr-Emann deleted the push-tkmukkmttzpx branch June 25, 2026 01:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant