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§
source§impl<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.
source§impl<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§
source§impl<Inner: Duplex + AsRawReadWriteFd> AsRawReadWriteFd for TerminalDuplexer<Inner>
impl<Inner: Duplex + AsRawReadWriteFd> AsRawReadWriteFd for TerminalDuplexer<Inner>
source§fn as_raw_read_fd(&self) -> RawFd
fn as_raw_read_fd(&self) -> RawFd
Extracts the raw file descriptor for reading. Read more
source§fn as_raw_write_fd(&self) -> RawFd
fn as_raw_write_fd(&self) -> RawFd
Extracts the raw file descriptor for writing. Read more
source§impl<Inner: Duplex + AsReadWriteFd> AsReadWriteFd for TerminalDuplexer<Inner>
impl<Inner: Duplex + AsReadWriteFd> AsReadWriteFd for TerminalDuplexer<Inner>
source§fn as_read_fd(&self) -> BorrowedFd<'_>
fn as_read_fd(&self) -> BorrowedFd<'_>
Extracts the file descriptor for reading. Read more
source§fn as_write_fd(&self) -> BorrowedFd<'_>
fn as_write_fd(&self) -> BorrowedFd<'_>
Extracts the file descriptor for writing. Read more
source§impl<Inner: Duplex + HalfDuplex> DuplexTerminal for TerminalDuplexer<Inner>
impl<Inner: Duplex + HalfDuplex> DuplexTerminal for TerminalDuplexer<Inner>
source§fn is_terminal(&self) -> bool
fn is_terminal(&self) -> bool
Test whether both the input stream and output streams are connected to
terminals. Read more
source§impl<Inner: Duplex + Read + Write> Read for TerminalDuplexer<Inner>
impl<Inner: Duplex + Read + Write> Read for TerminalDuplexer<Inner>
source§fn 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
source§fn 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 moresource§fn is_read_vectored(&self) -> bool
fn is_read_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)source§fn 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 moresource§fn 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 moresource§fn 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 moresource§fn 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
source§fn 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 · source§fn 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 moresource§impl<Inner: Duplex + Read + Write> ReadTerminal for TerminalDuplexer<Inner>
impl<Inner: Duplex + Read + Write> ReadTerminal for TerminalDuplexer<Inner>
source§fn 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.
source§fn is_input_terminal(&self) -> bool
fn is_input_terminal(&self) -> bool
Test whether the input is connected to a terminal. Read more
source§impl<Inner: Duplex + Read + Write> Write for TerminalDuplexer<Inner>
impl<Inner: Duplex + Read + Write> Write for TerminalDuplexer<Inner>
source§fn 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
source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)source§fn 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
source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>
🔬This is a nightly-only experimental API. (
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
source§impl<Inner: Duplex + Read + Write> WriteTerminal for TerminalDuplexer<Inner>
impl<Inner: Duplex + Read + Write> WriteTerminal for TerminalDuplexer<Inner>
source§fn color_support(&self) -> TerminalColorSupport
fn color_support(&self) -> TerminalColorSupport
Test whether this output stream supports color control codes.
source§fn 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.source§fn is_output_terminal(&self) -> bool
fn is_output_terminal(&self) -> bool
Test whether the output is connected to a terminal. Read more
source§fn 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.
impl<Inner: Duplex> Duplex for TerminalDuplexer<Inner>
impl<Inner: Duplex> Terminal for TerminalDuplexer<Inner>
Auto Trait Implementations§
impl<Inner> Freeze for TerminalDuplexer<Inner>where
Inner: Freeze,
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§
source§impl<T> AsRawReadWriteGrip for Twhere
T: AsRawReadWriteFd,
impl<T> AsRawReadWriteGrip for Twhere
T: AsRawReadWriteFd,
source§fn as_raw_read_grip(&self) -> i32
fn as_raw_read_grip(&self) -> i32
Extracts the grip for reading. Read more
source§fn as_raw_write_grip(&self) -> i32
fn as_raw_write_grip(&self) -> i32
Extracts the grip for writing. Read more
source§impl<T> AsReadWriteGrip for Twhere
T: AsReadWriteFd,
impl<T> AsReadWriteGrip for Twhere
T: AsReadWriteFd,
source§fn as_read_grip(&self) -> BorrowedFd<'_>
fn as_read_grip(&self) -> BorrowedFd<'_>
Extracts the grip for reading. Read more
source§fn as_write_grip(&self) -> BorrowedFd<'_>
fn as_write_grip(&self) -> BorrowedFd<'_>
Extracts the grip for writing. Read more
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more