Trait bitcoin_io::Read
source · 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(&mut self, limit: u64) -> Take<'_, Self> { ... }
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 info.
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.
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>
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.