In order to make a non-allocation version of this API, we need one new API: - `.read_to_vec()`, takes the range & vec to fill. Returns `Result<()>`