bitval 0.1.0

For packing booleans in variables using bitwise operations
Documentation
  • Coverage
  • 50%
    3 out of 6 items documented0 out of 4 items with examples
  • Size
  • Source code size: 6.39 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.25 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 10s Average build duration of successful builds.
  • all releases: 10s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Documentation
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • teckmk

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.