7 stable releases

3.2.1 Feb 1, 2024
3.2.0 Apr 30, 2022
3.1.0 Apr 30, 2021
2.1.0 Mar 26, 2020
1.0.0 Sep 6, 2019

#54 in Data structures

Download history 151271/week @ 2024-07-22 156797/week @ 2024-07-29 161186/week @ 2024-08-05 151374/week @ 2024-08-12 153615/week @ 2024-08-19 157316/week @ 2024-08-26 156462/week @ 2024-09-02 161406/week @ 2024-09-09 256981/week @ 2024-09-16 195761/week @ 2024-09-23 524591/week @ 2024-09-30 818048/week @ 2024-10-07 697845/week @ 2024-10-14 290888/week @ 2024-10-21 175080/week @ 2024-10-28 167259/week @ 2024-11-04

1,473,519 downloads per month
Used in 2,097 crates (18 directly)

MPL-2.0+

72KB
2.5K SLoC

bitmaps

A fixed size compact boolean array in Rust.

Overview

This crate provides a convenient and efficient way of declaring and working with fixed size bitmaps in Rust. It was originally split out from the sized-chunks crate and its primary purpose is to support it, but the Bitmap type has proven to be generally useful enough that it was split off into a separate crate.

Example

use bitmaps::Bitmap;

fn main() {
    let mut bitmap = Bitmap::<10>::new();
    assert_eq!(bitmap.set(5, true), false);
    assert_eq!(bitmap.set(5, true), true);
    assert_eq!(bitmap.get(5), true);
    assert_eq!(bitmap.get(6), false);
    assert_eq!(bitmap.len(), 1);
    assert_eq!(bitmap.set(3, true), false);
    assert_eq!(bitmap.len(), 2);
    assert_eq!(bitmap.first_index(), Some(3));
    assert_eq!(bitmap.last_index(), Some(5));
}

Documentation

Licence

Copyright 2019 Bodil Stokke

This software is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

No runtime deps