# Erased Buffers
[![Build Status]][actions] [![Test Coverage]][codecov] [![Latest Version]][crates.io] [![Documentation]][docs.rs]
[Build Status]: https://github.com/s22s/erased-cells/actions/workflows/CI.yml/badge.svg
[actions]: https://github.com/s22s/erased-cells/actions?query=branch%3Adevelop
[Latest Version]: https://img.shields.io/crates/v/erased-cells.svg
[crates.io]: https://crates.io/crates/erased-cells
[Test Coverage]: https://codecov.io/gh/s22s/erased-cells/graph/badge.svg?token=6GKU96IMV5
[codecov]: https://codecov.io/gh/s22s/erased-cells
[Documentation]: https://img.shields.io/docsrs/erased-cells
[docs.rs]: https://docs.rs/erased-cells/latest/erased_cells/
Enables the use and manipulation of type-erased buffers of Rust primitives.
Please refer to the [documentation](https://s22s.github.io/erased-cells/erased_cells/) for details.
## Quick Example
```rust
use erased_cells::CellBuffer;
fn main() {
// Create a buffer with u8 values.
let buf1 = CellBuffer::from(vec![1u8, 2, 3]);
// Create a buffer with u16 values.
let buf2 = CellBuffer::from(vec![2u16, 4, 6]);
// Perform element-wise and scalar math. Division coerces buffer to f64.
let result = buf1 / buf2 * 0.5;
// Expected result:
assert_eq!(result, vec![0.25, 0.25, 0.25].into());
}
```
See [here in the documentation](https://docs.rs/erased-cells/latest/erased_cells/#examples) for additional examples.