mask-tracked-array 0.2.0

A no-std no-alloc bitmask based data structure for embedded usecases
Documentation
# Bitmask backed array of slots
This library provides a bitmask backed array where the mask is used
to track which slots in the array are filled. This library also supports `serde`
serialisation using the `serde` feature flag.

This is very similar to an array of `Option`s, but the discriminant bits
are crammed together in a bitmask to save space and be a little bit performant.

This library is quite similar to https://github.com/BastiDood/option-block.
Here are a few differences:
-   This library has an `UnsafeCell` for each entry, so you can access each one
    independently when using `unsafe` to build data structures.
-   This library has a `MaskTrackedArray` trait which allows you to write
    generic data structures for different sizes.
-   This library does not have const functions due to traits not supporting them.
    `option-block` has support for const functions.
-   This library provides support for `serde` using the `serde` feature flag.
-   `option-block` provides some more methods for ergonomics compared to this
    library
-   This library uses the same `MaskTrackedArrayBase` type for all variants.
    This could be useful for doing generics over different sizes.

See the docs.rs page for more details.

# Example
```rust
let mut mask_tracked_array = MaskTrackedArrayU8::new();
mask_tracked_array.insert(0, 2);
mask_tracked_array.insert(1, 3);
assert_eq!(2, mask_tracked_array.remove(0));
assert_eq!(3, *mask_tracked_array.get_ref(1))
```