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§
fn 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.
fn 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.
fn 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.
Object Safety§
This trait is not object safe.