@csherratt, is there a reason you went with unsafe pointers for `put`, `get`, `write` and `read` as opposed to vector slices? It seems like using slices and references would let the code that uses these traits get away with less unsafety.