bitval

Crates.iobitval
lib.rsbitval
version0.1.0
sourcesrc
created_at2024-08-08 10:17:29.792999
updated_at2024-08-08 10:17:29.792999
descriptionFor packing booleans in variables using bitwise operations
homepage
repository
max_upload_size
id1329381
size6,714
teckmk (teckmk)

documentation

https://github.com/teckmk/bitwise_packable/blob/main/rbitpack/README.md

README

Bitfield

A Bitfield is a data structure that allows efficient storage and manipulation of individual bits. This implementation uses a Vec<u64> to store the bits, allowing for compact storage and fast access.

Overview

The Bitfield struct provides methods to create a bitfield of a specified size, set the value of individual bits, and get the value of individual bits.

Usage

Creating a Bitfield

To create a new Bitfield with a specific number of bits, use the new method:

let size = 128;
let mut bitfield = Bitfield::new(size);

This will create a Bitfield with 128 bits, all initially set to 0.

Setting a Bit

To set the value of a specific bit, use the set method:

bitfield.set(5, true); // Set the 5th bit to 1
bitfield.set(10, false); // Set the 10th bit to 0

If the provided index is out of bounds, the method will panic with an "Index out of bounds" message.

Getting a Bit

To get the value of a specific bit, use the get method:

let value = bitfield.get(5); // Get the value of the 5th bit
println!("Value of 5th bit: {}", value);

If the provided index is out of bounds, the method will panic with an "Index out of bounds" message.

Example

Here's an example demonstrating how to use the Bitfield struct:

use bitval::Bitfield;

fn main() {
    let size = 128;
    let mut bitfield = Bitfield::new(size);

    bitfield.set(5, true);
    bitfield.set(10, false);

    let value = bitfield.get(5);
    println!("Value of 5th bit: {}", value); // Output: Value of 5th bit: true
}

Cargo.toml

To include the bitval crate in your project, add the following entry to your Cargo.toml file:

[dependencies]
bitval = "0.1.0" // Replace with the current version

This will compile and run the tests, verifying that the Bitfield implementation behaves correctly.

License

This project is licensed under the MIT License.

Commit count: 0

cargo fmt