It assumes that the implementor of the `Reader` trait does not touch the bytes passed to it in its `read` function.