Skip to content

LazyMechanic/bitmac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bitmac

This library provides implementation of bitmap with custom bit accessing and resizing strategy.

crates.io docs.rs build

[dependencies]
bitmac = "0.3"

Features

Feature Description
bytes to implement ContainerRead trait for Bytes and ContainerRead, ContainerWrite, and Resizable traits for [BytesMut]
smallvec to implement ContainerRead, ContainerWrite and Resizable traits for SmallVec

Example

use bitmac::{StaticBitmap, LSB, Intersection, Union};

fn main() {
    let mut bitmap = StaticBitmap::<u16, LSB>::default();

    assert!(!bitmap.get(0));
    assert!(!bitmap.get(7));
    
    bitmap.set(0, true);
    bitmap.set(7, true);
    assert!(bitmap.get(0));
    assert!(bitmap.get(7));
    
    assert_eq!(bitmap.intersection_len(0b0000_1111_0000_0001u16), 1);
    assert_eq!(bitmap.union_len(0b0000_1111_0000_0001u16), 6);
}

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Structure for accessing to single bits

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages