Struct genio::util::Chain
[−]
[src]
pub struct Chain<F, S> { /* fields omitted */ }
Chains two readers.
All reads are forwarded to the first reader until it returns end. Then all other reads are forwarded to the second reader.
Methods
impl<F: Read, S: Read> Chain<F, S>
[src]
fn new(first: F, second: S) -> Self
Creates chain of readers.
Trait Implementations
impl<F: Read, S: Read> Read for Chain<F, S>
[src]
type ReadError = ChainError<F::ReadError, S::ReadError>
Value of this type is returned when read()
fails. Read more
fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::ReadError>
Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
fn read_exact(
&mut self,
buf: &mut [u8]
) -> Result<(), ReadExactError<Self::ReadError>>
&mut self,
buf: &mut [u8]
) -> Result<(), ReadExactError<Self::ReadError>>
Read the exact number of bytes required to fill buf
. Read more
fn available_bytes(&self, _at_least: usize) -> bool
Hints whether there are at least at_least
bytes available. Read more
fn chain<R: Read>(self, other: R) -> Chain<Self, R> where
Self: Sized,
Self: Sized,
Chains another reader after self
. When self ends (returns Ok(0)), the other reader will provide bytes to read. Read more
fn read_to_end<T: ExtendFromReader>(
&mut self,
container: &mut T
) -> Result<usize, ExtendError<Self::ReadError, T::ExtendError>> where
Self: ReadOverwrite,
&mut self,
container: &mut T
) -> Result<usize, ExtendError<Self::ReadError, T::ExtendError>> where
Self: ReadOverwrite,
Reads all bytes into any type that can be extended by a reader. This is more generic than the case of std::io
and might enable some optimizations. Read more
fn by_ref(&mut self) -> &mut Self where
Self: Sized,
Self: Sized,
Creates a "by reference" adaptor for this instance of Read
. Read more