bitval 0.1.0

For packing booleans in variables using bitwise operations
Documentation
# 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:

```rust
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:

```rust
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:

```rust
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:

```rust
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:

```toml
[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.