#bitmap #set-bit #bit-manipulation

bitmap4rust

A Rust library for creating and manipulating bitmaps

3 releases (stable)

Uses old Rust 2015

1.0.1 Apr 30, 2018
1.0.0 Mar 2, 2018
0.1.0 Feb 25, 2018

#25 in #set-bit

MIT license

6KB
65 lines

Bitmap4Rust

Status Open Source Love License Build Status

A Rust library for creating and manipulating Bitmaps.

API

The bitmap is maintained in a byte vector of appropriate size. Hence, it's type should be Vec<u8>.


pub fn bitmap_create(bitmap_size: &mut u64) -> Vec<u8>

Used to create the bitmap. Since the bitmap is maintained as a byte vector, it must be of type Vec<u8>.


pub fn clear_bit(bitmap: &mut Vec<u8>, bitno: u64) -> i32

Used to clear the bit at bitno, i.e, set it to 0. If bitno is larger than the bitmap's size, -1 is returned.


pub fn set_bit(bitmap: &mut Vec<u8>, bitno: u64) -> i32

Used to set the bit at bitno, i.e, set it to 1. If bitno is larger than the bitmap's size, -1 is returned.


pub fn get_first_set_bit(bitmap: &mut Vec<u8>) -> i64

Used to get the first bit of bitmap that is set to 1. Returns -1 if none are set.


pub fn get_first_unset_bit(bitmap: &mut Vec<u8>) -> i64 

Used to get the first bit of bitmap that is set to 0. Returns -1 if all bits are set.


pub fn check_bit(bitmap: &mut Vec<u8>, bitno: u64) -> i32

Used to check the value of the bit corresponding to bitno.


Usage

  • Add the dependency bitmap4rust in Cargo.toml

[dependencies]
bitmap4rust = "1.0.1"

  • Include the crate bitmap4rust

extern crate bitmap4rust;

No runtime deps