pub trait Read {
// Required method
fn read(&mut self, buf: &mut [u8]) -> Result<usize, Error>;
// Provided methods
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error> { ... }
fn take(&mut self, limit: u64) -> Take<'_, Self> { ... }
fn read_to_limit(
&mut self,
buf: &mut Vec<u8>,
limit: u64,
) -> Result<usize, Error> { ... }
}Expand description
A generic trait describing an input stream. See [std::io::Read] for more info.
Required Methods§
Provided Methods§
Sourcefn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
Reads bytes from source until buf is full.
Sourcefn take(&mut self, limit: u64) -> Take<'_, Self>
fn take(&mut self, limit: u64) -> Take<'_, Self>
Creates an adapter which will read at most limit bytes.
Sourcefn read_to_limit(
&mut self,
buf: &mut Vec<u8>,
limit: u64,
) -> Result<usize, Error>
fn read_to_limit( &mut self, buf: &mut Vec<u8>, limit: u64, ) -> Result<usize, Error>
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.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.