Struct terminal_io::TerminalDuplexer [−][src]
pub struct TerminalDuplexer<Inner: Duplex> { /* fields omitted */ }
Expand description
A wrapper around a Read
+ Write
which adds minimal terminal support.
Implementations
impl<Inner: Duplex + AsUnsafeReadWriteHandle> TerminalDuplexer<Inner>
[src]
impl<Inner: Duplex + AsUnsafeReadWriteHandle> TerminalDuplexer<Inner>
[src]pub fn with_handle(inner: Inner) -> Self
[src]
pub fn with_handle(inner: Inner) -> Self
[src]Wrap a TerminalDuplex
around the given stream, autodetecting
terminal properties using its AsUnsafeHandle
implementation.
impl<Inner: Duplex + Read + Write> TerminalDuplexer<Inner>
[src]
impl<Inner: Duplex + Read + Write> TerminalDuplexer<Inner>
[src]pub fn generic(inner: Inner) -> Self
[src]
pub fn generic(inner: Inner) -> Self
[src]Wrap a TerminalReader
around the given stream, using
conservative terminal properties.
pub fn into_inner(self) -> Inner
[src]
pub fn into_inner(self) -> Inner
[src]Consume self
and return the inner stream.
Trait Implementations
impl<Inner: Duplex + AsRawReadWriteFd> AsRawReadWriteFd for TerminalDuplexer<Inner>
[src]
impl<Inner: Duplex + AsRawReadWriteFd> AsRawReadWriteFd for TerminalDuplexer<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: Debug + Duplex> Debug for TerminalDuplexer<Inner>
[src]
impl<Inner: Debug + Duplex> Debug for TerminalDuplexer<Inner>
[src]impl<Inner: Duplex + HalfDuplex> DuplexTerminal for TerminalDuplexer<Inner>
[src]
impl<Inner: Duplex + HalfDuplex> DuplexTerminal for TerminalDuplexer<Inner>
[src]fn is_terminal(&self) -> bool
[src]
fn is_terminal(&self) -> bool
[src]Test whether both the input stream and output streams are connected to terminals. Read more
impl<Inner: Duplex + Read + Write> Read for TerminalDuplexer<Inner>
[src]
impl<Inner: Duplex + Read + Write> Read for TerminalDuplexer<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: Duplex + Read + Write> ReadTerminal for TerminalDuplexer<Inner>
[src]
impl<Inner: Duplex + Read + Write> ReadTerminal for TerminalDuplexer<Inner>
[src]fn is_line_by_line(&self) -> bool
[src]
fn is_line_by_line(&self) -> bool
[src]Test whether the input is being sent a line at a time.
fn is_input_terminal(&self) -> bool
[src]
fn is_input_terminal(&self) -> bool
[src]Test whether the input is connected to a terminal. Read more
impl<Inner: Duplex + Read + Write> Write for TerminalDuplexer<Inner>
[src]
impl<Inner: Duplex + Read + Write> Write for TerminalDuplexer<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: Duplex + Read + Write> WriteTerminal for TerminalDuplexer<Inner>
[src]
impl<Inner: Duplex + Read + Write> WriteTerminal for TerminalDuplexer<Inner>
[src]fn color_support(&self) -> TerminalColorSupport
[src]
fn color_support(&self) -> TerminalColorSupport
[src]Test whether this output stream supports color control codes.
fn color_preference(&self) -> bool
[src]
fn color_preference(&self) -> bool
[src]Test whether the user has indicated a preference for color output by
default. Respects the NO_COLOR
environment variable where applicable. Read more
fn is_output_terminal(&self) -> bool
[src]
fn is_output_terminal(&self) -> bool
[src]Test whether the output is connected to a terminal. Read more
fn color_default(&self) -> bool
[src]
fn color_default(&self) -> bool
[src]Test whether color should be used on this terminal by default. This includes both whether color is supported and whether the user has not indicated a preference otherwise. Read more
impl<Inner: Duplex> Duplex for TerminalDuplexer<Inner>
[src]
impl<Inner: Duplex + OwnsRaw> OwnsRaw for TerminalDuplexer<Inner>
[src]
impl<Inner: Duplex> Terminal for TerminalDuplexer<Inner>
[src]
Auto Trait Implementations
impl<Inner> RefUnwindSafe for TerminalDuplexer<Inner> where
Inner: RefUnwindSafe,
Inner: RefUnwindSafe,
impl<Inner> Send for TerminalDuplexer<Inner> where
Inner: Send,
Inner: Send,
impl<Inner> Sync for TerminalDuplexer<Inner> where
Inner: Sync,
Inner: Sync,
impl<Inner> Unpin for TerminalDuplexer<Inner> where
Inner: Unpin,
Inner: Unpin,
impl<Inner> UnwindSafe for TerminalDuplexer<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,