Struct layered_io::LayeredReader
source · pub struct LayeredReader<Inner> { /* private fields */ }
Expand description
Adapts an Read
to implement ReadLayered
.
Implementations
sourceimpl<Inner: Read> LayeredReader<Inner>
impl<Inner: Read> LayeredReader<Inner>
sourcepub fn new(inner: Inner) -> Self
pub fn new(inner: Inner) -> Self
Construct a new LayeredReader
which wraps inner
with default
settings.
sourcepub fn with_eos_as_push(inner: Inner) -> Self
pub fn with_eos_as_push(inner: Inner) -> Self
Construct a new LayeredReader
which wraps inner
. When inner
reports end of stream (by returning 0), report a push but keep the
stream open and continue to read data on it.
For example, when reading a file, when the reader reaches the end of the file it will report it, but consumers may wish to continue reading in case additional data is appended to the file.
sourcepub fn line_by_line(inner: Inner) -> Self
pub fn line_by_line(inner: Inner) -> Self
Construct a new LayeredReader
which wraps an inner
which reads its
input line-by-line, such as stdin on a terminal.
sourcepub fn abandon_into_inner(self) -> Option<Inner>
pub fn abandon_into_inner(self) -> Option<Inner>
Consume this LayeredReader
and return the inner stream.
Trait Implementations
sourceimpl<Inner: Read + AsFd> AsFd for LayeredReader<Inner>
impl<Inner: Read + AsFd> AsFd for LayeredReader<Inner>
sourcefn as_fd(&self) -> BorrowedFd<'_>
fn as_fd(&self) -> BorrowedFd<'_>
Borrows the file descriptor. Read more
sourceimpl<Inner: Read + AsRawFd> AsRawFd for LayeredReader<Inner>
impl<Inner: Read + AsRawFd> AsRawFd for LayeredReader<Inner>
sourceimpl<Inner> Bufferable for LayeredReader<Inner>
impl<Inner> Bufferable for LayeredReader<Inner>
sourcefn suggested_buffer_size(&self) -> usize
fn suggested_buffer_size(&self) -> usize
A suggested size, in bytes, for buffering for performance.
sourceimpl<Inner: Debug> Debug for LayeredReader<Inner>
impl<Inner: Debug> Debug for LayeredReader<Inner>
sourceimpl<Inner: Read> Read for LayeredReader<Inner>
impl<Inner: Read> Read for LayeredReader<Inner>
sourcefn read(&mut self, buf: &mut [u8]) -> Result<usize>
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
Pull some bytes from this source into the specified buffer, returning
how many bytes were read. Read more
sourcefn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
Like
read
, except that it reads into a slice of buffers. Read moresourcefn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)sourcefn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
Read all bytes until EOF in this source, placing them into
buf
. Read moresourcefn read_to_string(&mut self, buf: &mut String) -> Result<usize>
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
Read all bytes until EOF in this source, appending them to
buf
. Read moresourcefn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
Read the exact number of bytes required to fill
buf
. Read moresourcefn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Pull some bytes from this source into the specified buffer. Read more
sourcefn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
read_buf
)Read the exact number of bytes required to fill
cursor
. Read more1.0.0 · sourcefn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Creates a “by reference” adaptor for this instance of
Read
. Read moresourceimpl<Inner: Read> ReadLayered for LayeredReader<Inner>
impl<Inner: Read> ReadLayered for LayeredReader<Inner>
sourcefn read_with_status(&mut self, buf: &mut [u8]) -> Result<(usize, Status)>
fn read_with_status(&mut self, buf: &mut [u8]) -> Result<(usize, Status)>
Like
Read::read
, but also returns a Status
.sourcefn read_vectored_with_status(
&mut self,
bufs: &mut [IoSliceMut<'_>]
) -> Result<(usize, Status)>
fn read_vectored_with_status(
&mut self,
bufs: &mut [IoSliceMut<'_>]
) -> Result<(usize, Status)>
Like
Read::read_vectored
, but also returns a Status
.sourcefn read_exact_using_status(&mut self, buf: &mut [u8]) -> Result<Status>
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. Read moresourcefn minimum_buffer_size(&self) -> usize
fn minimum_buffer_size(&self) -> usize
Some streams require a buffer of at least a certain size.
Auto Trait Implementations
impl<Inner> RefUnwindSafe for LayeredReader<Inner>where
Inner: RefUnwindSafe,
impl<Inner> Send for LayeredReader<Inner>where
Inner: Send,
impl<Inner> Sync for LayeredReader<Inner>where
Inner: Sync,
impl<Inner> Unpin for LayeredReader<Inner>where
Inner: Unpin,
impl<Inner> UnwindSafe for LayeredReader<Inner>where
Inner: UnwindSafe,
Blanket Implementations
sourceimpl<T> AsFilelike for Twhere
T: AsFd,
impl<T> AsFilelike for Twhere
T: AsFd,
sourcefn as_filelike(&self) -> BorrowedFd<'_>
fn as_filelike(&self) -> BorrowedFd<'_>
Borrows the reference. Read more
sourcefn as_filelike_view<Target>(&self) -> FilelikeView<'_, Target>where
Target: FilelikeViewType,
fn as_filelike_view<Target>(&self) -> FilelikeView<'_, Target>where
Target: FilelikeViewType,
Return a borrowing view of a resource which dereferences to a
&Target
. Read moresourceimpl<T> AsRawFilelike for Twhere
T: AsRawFd,
impl<T> AsRawFilelike for Twhere
T: AsRawFd,
sourcefn as_raw_filelike(&self) -> i32
fn as_raw_filelike(&self) -> i32
Returns the raw value.
sourceimpl<T> AsRawGrip for Twhere
T: AsRawFd,
impl<T> AsRawGrip for Twhere
T: AsRawFd,
sourcefn as_raw_grip(&self) -> i32
fn as_raw_grip(&self) -> i32
Extracts the raw grip.
sourceimpl<T> AsRawSocketlike for Twhere
T: AsRawFd,
impl<T> AsRawSocketlike for Twhere
T: AsRawFd,
sourcefn as_raw_socketlike(&self) -> i32
fn as_raw_socketlike(&self) -> i32
Returns the raw value.
sourceimpl<T> AsSocketlike for Twhere
T: AsFd,
impl<T> AsSocketlike for Twhere
T: AsFd,
sourcefn as_socketlike(&self) -> BorrowedFd<'_>
fn as_socketlike(&self) -> BorrowedFd<'_>
Borrows the reference.
sourcefn as_socketlike_view<Target>(&self) -> SocketlikeView<'_, Target>where
Target: SocketlikeViewType,
fn as_socketlike_view<Target>(&self) -> SocketlikeView<'_, Target>where
Target: SocketlikeViewType,
Return a borrowing view of a resource which dereferences to a
&Target
. Read moresourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more