We should reduce the number of allocations/`clone()`s in `reader.rs` by maybe creating more flexible conversion traits that utilize unsafe code.