bit

Crates.iobit
lib.rsbit
version0.1.1
sourcesrc
created_at2017-04-11 18:22:40.471034
updated_at2017-04-12 10:31:36.240428
descriptionA library which provides helpers to manipulate bits and bit ranges.
homepage
repositoryhttps://github.com/jmi2k/bit-rs
max_upload_size
id10317
size18,517
José Miguel Sánchez (jmi2k)

documentation

https://docs.rs/bit

README

Bit

crates.io version badge

bit is a library which provides some useful helpers for dealing with bits and bit ranges. For now it's just a rewrite of rust-bit-field crate, but more features are planned. Some of them could be:

  • Support for arrays and slices.
  • bitflags-like functionality.

Usage

Add to your Cargo.toml:

[dependencies]
bit = "0.1"

And add to your code:

extern crate bit;
use bit::BitIndex;

Example

extern crate bit;
use bit::BitIndex;

fn main() {
    let mut value = 0b11010110u8;

    // 8
    println!("{}", u8::bit_length());

    // true
    println!("{}", value.bit(1));

    // 0b10
    println!("{:#b}", value.bit_range(0..2));

    value
        .set_bit(3, true)
        .set_bit(2, false)
        .set_bit_range(5..8, 0b001);

    // 0b111010
    println!("{:#b}", value);
}
Commit count: 0

cargo fmt