pub trait ReadLayered: Read + Bufferable {
    // Required method
    fn read_with_status(&mut self, buf: &mut [u8]) -> Result<(usize, Status)>;

    // Provided methods
    fn read_vectored_with_status(
        &mut self,
        bufs: &mut [IoSliceMut<'_>]
    ) -> Result<(usize, Status)> { ... }
    fn read_exact_using_status(&mut self, buf: &mut [u8]) -> Result<Status> { ... }
    fn minimum_buffer_size(&self) -> usize { ... }
}
Expand description

An extension of Read, with read_with_status and read_vectored_with_status which return status information and zero is not special-cased. It also allows streams to specify a minimum_buffer_size.

Required Methods§

source

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

Like Read::read, but also returns a Status.

Provided Methods§

source

fn read_vectored_with_status( &mut self, bufs: &mut [IoSliceMut<'_>] ) -> Result<(usize, Status)>

Like Read::read_vectored, but also returns a Status.

source

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

Like Read::read_exact, but uses read_with_status to avoid performing an extra read at the end.

source

fn minimum_buffer_size(&self) -> usize

Some streams require a buffer of at least a certain size.

Implementations on Foreign Types§

source§

impl<R: ReadLayered> ReadLayered for &mut R

source§

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

source§

fn read_vectored_with_status( &mut self, bufs: &mut [IoSliceMut<'_>] ) -> Result<(usize, Status)>

source§

fn minimum_buffer_size(&self) -> usize

source§

impl<R: ReadLayered> ReadLayered for Box<R>

source§

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

source§

fn read_vectored_with_status( &mut self, bufs: &mut [IoSliceMut<'_>] ) -> Result<(usize, Status)>

source§

fn minimum_buffer_size(&self) -> usize

Implementors§

source§

impl<'slice> ReadLayered for SliceReader<'slice>

source§

impl<Inner: Read + Write> ReadLayered for LayeredDuplexer<Inner>

source§

impl<Inner: Read> ReadLayered for LayeredReader<Inner>