light_bitmap 0.1.0

A minimal, fixed-size bitmap library written in pure Rust.
Documentation
use light_bitmap::{BitMap, bucket_count};

fn combinations<const BIT_COUNT: usize, const BUCKET_COUNT: usize>(
    idx: usize,
    bitmap: &mut BitMap<BIT_COUNT, BUCKET_COUNT>,
    data: &mut [bool],
) {
    if idx == data.len() {
        for (idx, pick) in (0..data.len()).zip(bitmap.iter()) {
            data[idx] = pick;
        }
        println!("{data:?}");
        return;
    }
    if !bitmap.is_set(idx) {
        bitmap.set(idx);
        combinations(idx + 1, bitmap, data);
        bitmap.unset(idx)
    }
    combinations(idx + 1, bitmap, data)
}

fn main() {
    const BIT_COUNT: usize = 9;
    let mut bitmap = BitMap::<BIT_COUNT, { bucket_count(BIT_COUNT) }>::new();
    let mut my_data = [false; BIT_COUNT];
    combinations(0, &mut bitmap, &mut my_data);
}