What's the best way to read from a type implementing the std::io::Read
trait when the contents of the output isn't important?
Possible options I see are:
- Read single bytes in a loop.
- Allocate a potentially huge vector and read into that.
- Something in-between... read into a fixed sized buffer in a loop.
The first 2 options don't seem ideal, the third is OK but inconvenient.
Does Rust provide a convenient way to achieve this?
You can use
io::copy()
,Read::take()
andio::sink()
to discard a specific number of bytes:(Playground)
Here, we also have to use
by_ref()
in order to be able to still use the file afterwards.