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 = new;
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; // Set the 5th bit to 1
bitfield.set; // 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; // Get the value of the 5th bit
println!;
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 Bitfield;
Cargo.toml
To include the bitval crate in your project, add the following entry to your Cargo.toml file:
[]
= "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.