Trait Read
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.
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.