Skip to main content

Module roaring_bitmap

Module roaring_bitmap 

Source
Expand description

Minimal Roaring Bitmap for cell-level dirty region tracking.

Roaring bitmaps efficiently represent sets of integers by adaptively switching between two container types based on density:

  • Array container: Sorted Vec<u16> for sparse regions (< 4096 entries).
  • Bitmap container: [u64; 1024] (8 KB) for dense regions (>= 4096 entries).

Indices are split into (high16, low16): the high 16 bits select the container, the low 16 bits select the position within it.

§Usage

use ftui_render::roaring_bitmap::RoaringBitmap;

let mut bm = RoaringBitmap::new();
bm.insert(42);
bm.insert(1000);
bm.insert(42); // duplicate is a no-op

assert!(bm.contains(42));
assert_eq!(bm.cardinality(), 2);

let items: Vec<u32> = bm.iter().collect();
assert_eq!(items, vec![42, 1000]);

Structs§

RoaringBitmap
A Roaring Bitmap for efficiently tracking sets of u32 indices.
RoaringIter
Iterator over all values in a RoaringBitmap in sorted order.