Struct terminal_io::TerminalDuplexer
source · [−]pub struct TerminalDuplexer<Inner: Duplex> { /* private fields */ }
Expand description
A wrapper around a Read
+ Write
which adds minimal terminal support.
Implementations
sourceimpl<Inner: Duplex + AsReadWriteGrip> TerminalDuplexer<Inner>
impl<Inner: Duplex + AsReadWriteGrip> TerminalDuplexer<Inner>
sourcepub fn with_handle<'a>(inner: Inner) -> Self
pub fn with_handle<'a>(inner: Inner) -> Self
Wrap a TerminalDuplex
around the given stream, autodetecting
terminal properties using its AsGrip
implementation.
sourceimpl<Inner: Duplex + Read + Write> TerminalDuplexer<Inner>
impl<Inner: Duplex + Read + Write> TerminalDuplexer<Inner>
sourcepub fn generic(inner: Inner) -> Self
pub fn generic(inner: Inner) -> Self
Wrap a TerminalReader
around the given stream, using
conservative terminal properties.
sourcepub fn into_inner(self) -> Inner
pub fn into_inner(self) -> Inner
Consume self
and return the inner stream.
Trait Implementations
sourceimpl<Inner: Duplex + AsRawReadWriteFd> AsRawReadWriteFd for TerminalDuplexer<Inner>
impl<Inner: Duplex + AsRawReadWriteFd> AsRawReadWriteFd for TerminalDuplexer<Inner>
sourcefn as_raw_read_fd(&self) -> RawFd
fn as_raw_read_fd(&self) -> RawFd
Extracts the raw file descriptor for reading. Read more
sourcefn as_raw_write_fd(&self) -> RawFd
fn as_raw_write_fd(&self) -> RawFd
Extracts the raw file descriptor for writing. Read more
sourceimpl<Inner: Duplex + AsReadWriteFd> AsReadWriteFd for TerminalDuplexer<Inner>
impl<Inner: Duplex + AsReadWriteFd> AsReadWriteFd for TerminalDuplexer<Inner>
sourcefn as_read_fd(&self) -> BorrowedFd<'_>
fn as_read_fd(&self) -> BorrowedFd<'_>
Extracts the file descriptor for reading. Read more
sourcefn as_write_fd(&self) -> BorrowedFd<'_>
fn as_write_fd(&self) -> BorrowedFd<'_>
Extracts the file descriptor for writing. Read more
sourceimpl<Inner: Debug + Duplex> Debug for TerminalDuplexer<Inner>
impl<Inner: Debug + Duplex> Debug for TerminalDuplexer<Inner>
sourceimpl<Inner: Duplex + HalfDuplex> DuplexTerminal for TerminalDuplexer<Inner>
impl<Inner: Duplex + HalfDuplex> DuplexTerminal for TerminalDuplexer<Inner>
sourcefn is_terminal(&self) -> bool
fn is_terminal(&self) -> bool
Test whether both the input stream and output streams are connected to terminals. Read more
sourceimpl<Inner: Duplex + Read + Write> Read for TerminalDuplexer<Inner>
impl<Inner: Duplex + Read + Write> Read for TerminalDuplexer<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 more
sourcefn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
can_vector
)Determines if this Read
er has an efficient read_vectored
implementation. Read more
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 more
sourcefn 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 more
sourcefn 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 more
sourcefn read_buf(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
fn read_buf(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
read_buf
)Pull some bytes from this source into the specified buffer. Read more
sourcefn read_buf_exact(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
fn read_buf_exact(&mut self, buf: &mut ReadBuf<'_>) -> Result<(), Error>
read_buf
)Read the exact number of bytes required to fill buf
. Read more
1.0.0 · sourcefn by_ref(&mut self) -> &mut Self
fn by_ref(&mut self) -> &mut Self
Creates a “by reference” adaptor for this instance of Read
. Read more
sourceimpl<Inner: Duplex + Read + Write> ReadTerminal for TerminalDuplexer<Inner>
impl<Inner: Duplex + Read + Write> ReadTerminal for TerminalDuplexer<Inner>
sourcefn is_line_by_line(&self) -> bool
fn is_line_by_line(&self) -> bool
Test whether the input is being sent a line at a time.
sourcefn is_input_terminal(&self) -> bool
fn is_input_terminal(&self) -> bool
Test whether the input is connected to a terminal. Read more
sourceimpl<Inner: Duplex + Read + Write> Write for TerminalDuplexer<Inner>
impl<Inner: Duplex + Read + Write> Write for TerminalDuplexer<Inner>
sourcefn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Write a buffer into this writer, returning how many bytes were written. Read more
sourcefn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
sourcefn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)Determines if this Write
r has an efficient write_vectored
implementation. Read more
sourcefn write_all(&mut self, buf: &[u8]) -> Result<()>
fn write_all(&mut self, buf: &[u8]) -> Result<()>
Attempts to write an entire buffer into this writer. Read more
sourcefn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
sourceimpl<Inner: Duplex + Read + Write> WriteTerminal for TerminalDuplexer<Inner>
impl<Inner: Duplex + Read + Write> WriteTerminal for TerminalDuplexer<Inner>
sourcefn color_support(&self) -> TerminalColorSupport
fn color_support(&self) -> TerminalColorSupport
Test whether this output stream supports color control codes.
sourcefn color_preference(&self) -> bool
fn color_preference(&self) -> bool
Test whether the user has indicated a preference for color output by
default. Respects the NO_COLOR
environment variable where applicable. Read more
sourcefn is_output_terminal(&self) -> bool
fn is_output_terminal(&self) -> bool
Test whether the output is connected to a terminal. Read more
sourcefn color_default(&self) -> bool
fn color_default(&self) -> bool
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>
impl<Inner: Duplex> Terminal for TerminalDuplexer<Inner>
Auto Trait Implementations
impl<Inner> RefUnwindSafe for TerminalDuplexer<Inner> where
Inner: RefUnwindSafe,
impl<Inner> Send for TerminalDuplexer<Inner> where
Inner: Send,
impl<Inner> Sync for TerminalDuplexer<Inner> where
Inner: Sync,
impl<Inner> Unpin for TerminalDuplexer<Inner> where
Inner: Unpin,
impl<Inner> UnwindSafe for TerminalDuplexer<Inner> where
Inner: UnwindSafe,
Blanket Implementations
sourceimpl<T> AsRawReadWriteGrip for T where
T: AsRawReadWriteFd,
impl<T> AsRawReadWriteGrip for T where
T: AsRawReadWriteFd,
sourcefn as_raw_read_grip(&self) -> i32
fn as_raw_read_grip(&self) -> i32
Extracts the grip for reading. Read more
sourcefn as_raw_write_grip(&self) -> i32
fn as_raw_write_grip(&self) -> i32
Extracts the grip for writing. Read more
sourceimpl<T> AsReadWriteGrip for T where
T: AsReadWriteFd,
impl<T> AsReadWriteGrip for T where
T: AsReadWriteFd,
sourcefn as_read_grip(&self) -> BorrowedFd<'_>
fn as_read_grip(&self) -> BorrowedFd<'_>
Extracts the grip for reading. Read more
sourcefn as_write_grip(&self) -> BorrowedFd<'_>
fn as_write_grip(&self) -> BorrowedFd<'_>
Extracts the grip for writing. Read more
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
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