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§

source

fn read(&mut self, buf: &mut [u8]) -> Result<usize>

Reads bytes from source into buf.

Provided Methods§

source

fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>

Reads bytes from source until buf is full.

source

fn take(&mut self, limit: u64) -> Take<'_, Self>

Creates an adapter which will read at most limit bytes.

source

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.

Implementations on Foreign Types§

source§

impl Read for &[u8]

source§

fn read(&mut self, buf: &mut [u8]) -> Result<usize>

source§

impl<R: Read> Read for BufReader<R>

source§

fn read(&mut self, buf: &mut [u8]) -> Result<usize>

Implementors§

source§

impl<'a, R: Read + ?Sized> Read for Take<'a, R>

source§

impl<T: AsRef<[u8]>> Read for Cursor<T>