pub type Buffer<'a, 'b> = &'a mut Cursor<'b>;
The problem with being generic over std::io::Read is that it’s fallible, but in practice, we’re always going to serialize in-memory, so instead we just use a [u8] as our buffer.
std::io::Read
[u8]