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>
Available on crate feature alloc only.
fn read_to_limit( &mut self, buf: &mut Vec<u8>, limit: u64, ) -> Result<usize, Error>
alloc only.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".