| Crates.io | bitval |
| lib.rs | bitval |
| version | 0.1.0 |
| created_at | 2024-08-08 10:17:29.792999+00 |
| updated_at | 2024-08-08 10:17:29.792999+00 |
| description | For packing booleans in variables using bitwise operations |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1329381 |
| size | 6,714 |
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.
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.
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.
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.
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.
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
}
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.
This project is licensed under the MIT License.