Struct layered_io::LayeredDuplexer [−][src]
pub struct LayeredDuplexer<Inner> { /* fields omitted */ }
Expand description
Adapts an Read
+ Write
to implement DuplexLayered
.
Implementations
impl<Inner: Read + Write> LayeredDuplexer<Inner>
[src]
impl<Inner: Read + Write> LayeredDuplexer<Inner>
[src]pub fn new(inner: Inner) -> Self
[src]
pub fn new(inner: Inner) -> Self
[src]Construct a new LayeredDuplexer
which wraps inner
with default
settings.
pub fn with_eos_as_push(inner: Inner) -> Self
[src]
pub fn with_eos_as_push(inner: Inner) -> Self
[src]Construct a new LayeredDuplexer
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.
pub fn line_by_line(inner: Inner) -> Self
[src]
pub fn line_by_line(inner: Inner) -> Self
[src]Construct a new LayeredDuplexer
which wraps an inner
which reads
its input line-by-line, such as stdin on a terminal.
pub fn close_into_inner(self) -> Result<Inner>
[src]
pub fn close_into_inner(self) -> Result<Inner>
[src]Close this LayeredDuplexer
and return the inner stream.
pub fn abandon_into_inner(self) -> Option<Inner>
[src]
pub fn abandon_into_inner(self) -> Option<Inner>
[src]Consume this LayeredDuplexer
and return the inner stream.
Trait Implementations
impl<Inner: Duplex + AsRawReadWriteFd> AsRawReadWriteFd for LayeredDuplexer<Inner>
[src]
impl<Inner: Duplex + AsRawReadWriteFd> AsRawReadWriteFd for LayeredDuplexer<Inner>
[src]fn as_raw_read_fd(&self) -> RawFd
[src]
fn as_raw_read_fd(&self) -> RawFd
[src]Extracts the raw file descriptor for reading. Read more
fn as_raw_write_fd(&self) -> RawFd
[src]
fn as_raw_write_fd(&self) -> RawFd
[src]Extracts the raw file descriptor for writing. Read more
impl<Inner> Bufferable for LayeredDuplexer<Inner>
[src]
impl<Inner> Bufferable for LayeredDuplexer<Inner>
[src]fn suggested_buffer_size(&self) -> usize
[src]
fn suggested_buffer_size(&self) -> usize
[src]A suggested size, in bytes, for buffering for performance.
impl<Inner: Debug> Debug for LayeredDuplexer<Inner>
[src]
impl<Inner: Debug> Debug for LayeredDuplexer<Inner>
[src]impl<Inner> Drop for LayeredDuplexer<Inner>
[src]
impl<Inner> Drop for LayeredDuplexer<Inner>
[src]impl<Inner: Read + Write> Read for LayeredDuplexer<Inner>
[src]
impl<Inner: Read + Write> Read for LayeredDuplexer<Inner>
[src]fn read(&mut self, buf: &mut [u8]) -> Result<usize>
[src]
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
[src]Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
[src]
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize>
[src]Like read
, except that it reads into a slice of buffers. Read more
fn is_read_vectored(&self) -> bool
[src]
fn is_read_vectored(&self) -> bool
[src]can_vector
)Determines if this Read
er has an efficient read_vectored
implementation. Read more
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
[src]
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize>
[src]Read all bytes until EOF in this source, placing them into buf
. Read more
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
[src]
fn read_to_string(&mut self, buf: &mut String) -> Result<usize>
[src]Read all bytes until EOF in this source, appending them to buf
. Read more
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
[src]
fn read_exact(&mut self, buf: &mut [u8]) -> Result<()>
[src]Read the exact number of bytes required to fill buf
. Read more
unsafe fn initializer(&self) -> Initializer
[src]
unsafe fn initializer(&self) -> Initializer
[src]read_initializer
)Determines if this Read
er can work with buffers of uninitialized
memory. Read more
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
fn by_ref(&mut self) -> &mut Self
1.0.0[src]Creates a “by reference” adaptor for this instance of Read
. Read more
impl<Inner: Read + Write> ReadLayered for LayeredDuplexer<Inner>
[src]
impl<Inner: Read + Write> ReadLayered for LayeredDuplexer<Inner>
[src]fn read_with_status(&mut self, buf: &mut [u8]) -> Result<(usize, Status)>
[src]
fn read_with_status(&mut self, buf: &mut [u8]) -> Result<(usize, Status)>
[src]Like Read::read
, but also returns a Status
.
fn read_vectored_with_status(
&mut self,
bufs: &mut [IoSliceMut<'_>]
) -> Result<(usize, Status)>
[src]
fn read_vectored_with_status(
&mut self,
bufs: &mut [IoSliceMut<'_>]
) -> Result<(usize, Status)>
[src]Like Read::read_vectored
, but also returns a Status
.
fn read_exact_using_status(&mut self, buf: &mut [u8]) -> Result<Status>
[src]
fn read_exact_using_status(&mut self, buf: &mut [u8]) -> Result<Status>
[src]Like Read::read_exact
, but uses read_with_status
to avoid
performing an extra read
at the end. Read more
fn minimum_buffer_size(&self) -> usize
[src]
fn minimum_buffer_size(&self) -> usize
[src]Some streams require a buffer of at least a certain size.
impl<Inner: Read + Write> Write for LayeredDuplexer<Inner>
[src]
impl<Inner: Read + Write> Write for LayeredDuplexer<Inner>
[src]fn write(&mut self, buf: &[u8]) -> Result<usize>
[src]
fn write(&mut self, buf: &[u8]) -> Result<usize>
[src]Write a buffer into this writer, returning how many bytes were written. Read more
fn flush(&mut self) -> Result<()>
[src]
fn flush(&mut self) -> Result<()>
[src]Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
fn is_write_vectored(&self) -> bool
[src]
fn is_write_vectored(&self) -> bool
[src]can_vector
)Determines if this Write
r has an efficient write_vectored
implementation. Read more
fn write_all(&mut self, buf: &[u8]) -> Result<()>
[src]
fn write_all(&mut self, buf: &[u8]) -> Result<()>
[src]Attempts to write an entire buffer into this writer. Read more
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
[src]
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
[src]write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
impl<Inner: Read + Write> WriteLayered for LayeredDuplexer<Inner>
[src]
impl<Inner: Read + Write> WriteLayered for LayeredDuplexer<Inner>
[src]impl<Inner: Read + Write + Duplex> Duplex for LayeredDuplexer<Inner>
[src]
impl<Inner: Duplex + OwnsRaw> OwnsRaw for LayeredDuplexer<Inner>
[src]
Auto Trait Implementations
impl<Inner> RefUnwindSafe for LayeredDuplexer<Inner> where
Inner: RefUnwindSafe,
Inner: RefUnwindSafe,
impl<Inner> Send for LayeredDuplexer<Inner> where
Inner: Send,
Inner: Send,
impl<Inner> Sync for LayeredDuplexer<Inner> where
Inner: Sync,
Inner: Sync,
impl<Inner> Unpin for LayeredDuplexer<Inner> where
Inner: Unpin,
Inner: Unpin,
impl<Inner> UnwindSafe for LayeredDuplexer<Inner> where
Inner: UnwindSafe,
Inner: UnwindSafe,
Blanket Implementations
impl<T> AsUnsafeReadWriteHandle for T where
T: AsRawReadWriteFd + OwnsRaw,
[src]
impl<T> AsUnsafeReadWriteHandle for T where
T: AsRawReadWriteFd + OwnsRaw,
[src]pub fn as_unsafe_read_handle(&self) -> UnsafeHandle
[src]
pub fn as_unsafe_read_handle(&self) -> UnsafeHandle
[src]Extracts the unsafe handle for reading.
pub fn as_unsafe_write_handle(&self) -> UnsafeHandle
[src]
pub fn as_unsafe_write_handle(&self) -> UnsafeHandle
[src]Extracts the unsafe handle for writing.
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> HalfDuplex for T where
T: Duplex + Read + Write,
[src]
T: Duplex + Read + Write,