pub trait Read {
// Required method
fn read(&mut self, buf: &mut [u8]) -> Result<usize>;
// Provided methods
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()> { ... }
fn take(self, limit: u64) -> Take<Self>
where Self: Sized { ... }
fn read_to_limit(&mut self, buf: &mut Vec<u8>, limit: u64) -> Result<usize> { ... }
}Expand description
A generic trait describing an input stream.
See std::io::Read for more information.
Required Methods§
Provided Methods§
Sourcefn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
Reads bytes from source until buf is full.
§Errors
If the exact number of bytes required to fill buf cannot be read.
Sourcefn take(self, limit: u64) -> Take<Self>where
Self: Sized,
fn take(self, limit: u64) -> Take<Self>where
Self: Sized,
Constructs a new adapter which will read at most limit bytes.
Sourcefn read_to_limit(&mut self, buf: &mut Vec<u8>, limit: u64) -> Result<usize>
fn read_to_limit(&mut self, buf: &mut Vec<u8>, limit: u64) -> Result<usize>
Attempts to read up to limit bytes from the reader, allocating space in buf as needed.
limit is used to prevent a denial of service attack vector since an unbounded reader will
exhaust all memory.
Similar to std::io::Read::read_to_end but with the DOS protection.
§Returns
The number of bytes read if successful or an Error if reading fails.