1 unstable release
Uses old Rust 2015
0.1.0 | Aug 8, 2024 |
---|
#1165 in Data structures
129 downloads per month
5KB
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.