Struct basic_text::TextDuplexer [−][src]
pub struct TextDuplexer<Inner: HalfDuplex + ReadStr + WriteStr> { /* fields omitted */ }
Expand description
A HalfDuplex
implementation which translates from an input HalfDuplex
implementation producing an arbitrary byte sequence into a valid Basic Text
stream.
Implementations
impl<Inner: HalfDuplex> TextDuplexer<Utf8Duplexer<LayeredDuplexer<Inner>>>
[src]
impl<Inner: HalfDuplex> TextDuplexer<Utf8Duplexer<LayeredDuplexer<Inner>>>
[src]pub fn new(inner: Inner) -> Self
[src]
pub fn new(inner: Inner) -> Self
[src]Construct a new instance of TextDuplexer
wrapping inner
, which can be
anything that implements HalfDuplex
.
pub fn with_bom_compatibility(inner: Inner) -> Result<Self>
[src]
pub fn with_bom_compatibility(inner: Inner) -> Result<Self>
[src]Like new
, but writes a U+FEFF (BOM) to the beginning of the output
stream for compatibility with consumers that require that to determine
the text encoding.
pub fn with_crlf_compatibility(inner: Inner) -> Self
[src]
pub fn with_crlf_compatibility(inner: Inner) -> Self
[src]Like new
, but enables CRLF output mode, which translates “\n” to
“\r\n” for compatibility with consumers that need that.
Note: This is not often needed; even on Windows these days most things are ok with plain ‘\n’ line endings, including Windows Notepad. The main notable things that really need them are IETF RFCs, for example RFC-5198.
pub fn with_nel_compatibility(inner: Inner) -> Result<Self>
[src]
pub fn with_nel_compatibility(inner: Inner) -> Result<Self>
[src]Like new
, but replaces U+85 (NEL) with U+A instead of U+20.
pub fn with_lsps_compatibility(inner: Inner) -> Result<Self>
[src]
pub fn with_lsps_compatibility(inner: Inner) -> Result<Self>
[src]Like new
, but replaces U+2028 (LS) and U+2029 (PS) with U+A instead
of U+20.
impl<Inner: HalfDuplex + ReadStr + ReadLayered + ReadStrLayered + WriteStr + WriteLayered> TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplex + ReadStr + ReadLayered + ReadStrLayered + WriteStr + WriteLayered> TextDuplexer<Inner>
[src]pub fn from_utf8_with_bom_compatibility(inner: Inner) -> Result<Self>
[src]
pub fn from_utf8_with_bom_compatibility(inner: Inner) -> Result<Self>
[src]Like from_utf8
, but writes a U+FEFF (BOM) to the beginning of the output
stream for compatibility with consumers that require that to determine
the text encoding.
pub fn from_utf8_with_crlf_compatibility(inner: Inner) -> Self
[src]
pub fn from_utf8_with_crlf_compatibility(inner: Inner) -> Self
[src]Like from_utf8
, but enables CRLF output mode, which translates “\n” to
“\r\n” for compatibility with consumers that need that.
Note: This is not often needed; even on Windows these days most things are ok with plain ‘\n’ line endings, including Windows Notepad. The main notable things that really need them are IETF RFCs, for example RFC-5198.
pub fn from_utf8_with_nel_compatibility(inner: Inner) -> Result<Self>
[src]
pub fn from_utf8_with_nel_compatibility(inner: Inner) -> Result<Self>
[src]Like from_utf8
, but replaces U+85 (NEL) with U+A instead of U+20.
pub fn from_utf8_with_lsps_compatibility(inner: Inner) -> Result<Self>
[src]
pub fn from_utf8_with_lsps_compatibility(inner: Inner) -> Result<Self>
[src]Like from_utf8
, but replaces U+2028 (LS) and U+2029 (PS) with U+A
instead of U+20.
pub fn close_into_inner(self) -> Result<Inner>
[src]
pub fn close_into_inner(self) -> Result<Inner>
[src]Flush and close the underlying stream and return the underlying stream object.
pub fn abandon_into_inner(self) -> Inner
[src]
pub fn abandon_into_inner(self) -> Inner
[src]Return the underlying stream object.
Trait Implementations
impl<Inner: HalfDuplexLayered + ReadStr + WriteStr + AsRawFd> AsRawFd for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStr + WriteStr + AsRawFd> AsRawFd for TextDuplexer<Inner>
[src]impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> Bufferable for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> Bufferable for TextDuplexer<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: HalfDuplexLayered + ReadStr + WriteStr + Debug> Debug for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStr + WriteStr + Debug> Debug for TextDuplexer<Inner>
[src]impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> Read for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> Read for TextDuplexer<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_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_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
1.36.0[src]
fn read_vectored(&mut self, bufs: &mut [IoSliceMut<'_>]) -> Result<usize, Error>
1.36.0[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
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 read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0[src]
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0[src]Read the exact number of bytes required to fill buf
. 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: HalfDuplexLayered + ReadStrLayered + WriteStr> ReadLayered for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> ReadLayered for TextDuplexer<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 minimum_buffer_size(&self) -> usize
[src]
fn minimum_buffer_size(&self) -> usize
[src]Some streams require a buffer of at least a certain size.
fn read_vectored_with_status(
&mut self,
bufs: &mut [IoSliceMut<'_>]
) -> Result<(usize, Status), Error>
[src]
fn read_vectored_with_status(
&mut self,
bufs: &mut [IoSliceMut<'_>]
) -> Result<(usize, Status), Error>
[src]Like Read::read_vectored
, but also returns a Status
.
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> ReadStr for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> ReadStr for TextDuplexer<Inner>
[src]fn read_str(&mut self, buf: &mut str) -> Result<usize>
[src]
fn read_str(&mut self, buf: &mut str) -> Result<usize>
[src]Like read
but produces the result in a str
. Be sure to check the
size
field of the return value to see how many bytes were written. Read more
fn read_exact_str(&mut self, buf: &mut str) -> Result<()>
[src]
fn read_exact_str(&mut self, buf: &mut str) -> Result<()>
[src]Like read_exact
but produces the result in a str
.
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> ReadStrLayered for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> ReadStrLayered for TextDuplexer<Inner>
[src]impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> ReadText for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> ReadText for TextDuplexer<Inner>
[src]fn read_text_substr(&mut self, buf: &mut TextSubstr) -> Result<usize>
[src]
fn read_text_substr(&mut self, buf: &mut TextSubstr) -> Result<usize>
[src]Like read_str
but for reading Basic Text content. Note that the
resulting data may not be a Basic Text string, as it may be eg. a
portion of a stream that starts with a non-starter. Read more
fn read_exact_text_substr(&mut self, buf: &mut TextSubstr) -> Result<()>
[src]
fn read_exact_text_substr(&mut self, buf: &mut TextSubstr) -> Result<()>
[src]Like read_exact_str
but for reading Basic Text content. As with
read_text
, the resulting string may not be a Basic Text string. Read more
fn read_to_text_string(&mut self, buf: &mut TextString) -> Result<usize>
[src]
fn read_to_text_string(&mut self, buf: &mut TextString) -> Result<usize>
[src]Like read_to_string
, but reads into a TextString
.
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> ReadTextLayered for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> ReadTextLayered for TextDuplexer<Inner>
[src]fn read_text_substr_with_status(
&mut self,
buf: &mut TextSubstr
) -> Result<(usize, Status)>
[src]
fn read_text_substr_with_status(
&mut self,
buf: &mut TextSubstr
) -> Result<(usize, Status)>
[src]Like read_str_with_status
but for reading Basic Text data. Note that
the resulting data may not be a Basic Text string, as it may be eg. a
portion of a stream that starts with a non-starter. Read more
fn read_exact_text_substr_using_status(
&mut self,
buf: &mut TextSubstr
) -> Result<Status>
[src]
fn read_exact_text_substr_using_status(
&mut self,
buf: &mut TextSubstr
) -> Result<Status>
[src]Like read_exact_str_using_status
but for reading Basic Text content.
As with read_text
, the resulting string may not be a Basic Text
string. Read more
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> Write for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> Write for TextDuplexer<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_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
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
1.0.0[src]
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
1.0.0[src]Attempts to write an entire buffer into this writer. Read more
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> WriteLayered for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> WriteLayered for TextDuplexer<Inner>
[src]impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> WriteStr for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> WriteStr for TextDuplexer<Inner>
[src]impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> WriteText for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> WriteText for TextDuplexer<Inner>
[src]fn write_text_substr(&mut self, s: &TextSubstr) -> Result<()>
[src]
fn write_text_substr(&mut self, s: &TextSubstr) -> Result<()>
[src]Like WriteStr::write_str
but writes from a TextSubstr
.
fn write_text(&mut self, buf: &TextStr) -> Result<()>
[src]
fn write_text(&mut self, buf: &TextStr) -> Result<()>
[src]Like WriteStr::write_str
but writes from a TextStr
.
impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> Duplex for TextDuplexer<Inner>
[src]
impl<Inner: HalfDuplexLayered + ReadStr + WriteStr + OwnsRaw> OwnsRaw for TextDuplexer<Inner>
[src]
Auto Trait Implementations
impl<Inner> RefUnwindSafe for TextDuplexer<Inner> where
Inner: RefUnwindSafe,
Inner: RefUnwindSafe,
impl<Inner> Send for TextDuplexer<Inner> where
Inner: Send,
Inner: Send,
impl<Inner> Sync for TextDuplexer<Inner> where
Inner: Sync,
Inner: Sync,
impl<Inner> Unpin for TextDuplexer<Inner> where
Inner: Unpin,
Inner: Unpin,
impl<Inner> UnwindSafe for TextDuplexer<Inner> where
Inner: UnwindSafe,
Inner: UnwindSafe,
Blanket Implementations
impl<T> AsUnsafeFile for T where
T: AsRawFd + OwnsRaw,
[src]
impl<T> AsUnsafeFile for T where
T: AsRawFd + OwnsRaw,
[src]pub fn as_unsafe_file(&self) -> UnsafeFile
[src]
pub fn as_unsafe_file(&self) -> UnsafeFile
[src]Return the contained unsafe file.
fn as_file_view(&self) -> View<'_, File>
[src]
fn as_file_view(&self) -> View<'_, File>
[src]Utility for returning a value which dereferences to a &File
or
&mut File
. Read more
unsafe fn as_unscoped_file_view(&self) -> View<'static, File>
[src]
unsafe fn as_unscoped_file_view(&self) -> View<'static, File>
[src]Like as_file_view
, but returns a value which is not explicitly tied
to the lifetime of self
. Read more
fn as_pipe_reader_view(&self) -> View<'_, PipeReader>
[src]
fn as_pipe_reader_view(&self) -> View<'_, PipeReader>
[src]Utility for returning a value which dereferences to a &PipeReader
or
&mut PipeReader
. Read more
unsafe fn as_unscoped_pipe_reader_view(&self) -> View<'static, PipeReader>
[src]
unsafe fn as_unscoped_pipe_reader_view(&self) -> View<'static, PipeReader>
[src]Like as_pipe_reader_view
, but returns a value which is not explicitly
tied to the lifetime of self
. Read more
fn as_pipe_writer_view(&self) -> View<'_, PipeWriter>
[src]
fn as_pipe_writer_view(&self) -> View<'_, PipeWriter>
[src]Utility for returning a value which dereferences to a &PipeWriter
or
&mut PipeWriter
. Read more
unsafe fn as_unscoped_pipe_writer_view(&self) -> View<'static, PipeWriter>
[src]
unsafe fn as_unscoped_pipe_writer_view(&self) -> View<'static, PipeWriter>
[src]Like as_pipe_writer_view
, but returns a value which is not explicitly
tied to the lifetime of self
. Read more
impl<T> AsUnsafeHandle for T where
T: AsRawFd + OwnsRaw,
[src]
impl<T> AsUnsafeHandle for T where
T: AsRawFd + OwnsRaw,
[src]pub fn as_unsafe_handle(&self) -> UnsafeHandle
[src]
pub fn as_unsafe_handle(&self) -> UnsafeHandle
[src]Return the contained unsafe handle.
impl<T> AsUnsafeSocket for T where
T: AsRawFd + OwnsRaw,
[src]
impl<T> AsUnsafeSocket for T where
T: AsRawFd + OwnsRaw,
[src]pub fn as_unsafe_socket(&self) -> UnsafeSocket
[src]
pub fn as_unsafe_socket(&self) -> UnsafeSocket
[src]Return the contained unsafe socket.
fn as_tcp_stream_view(&self) -> View<'_, TcpStream>
[src]
fn as_tcp_stream_view(&self) -> View<'_, TcpStream>
[src]Utility for returning a value which dereferences to a &TcpStream
or
&mut TcpStream
. Read more
unsafe fn as_unscoped_tcp_stream_view(&self) -> View<'static, TcpStream>
[src]
unsafe fn as_unscoped_tcp_stream_view(&self) -> View<'static, TcpStream>
[src]Like as_tcp_stream_view
, but returns a value which is not explicitly
tied to the lifetime of self
. Read more
fn as_tcp_listener_view(&self) -> View<'_, TcpListener>
[src]
fn as_tcp_listener_view(&self) -> View<'_, TcpListener>
[src]Utility for returning a value which dereferences to a &TcpListener
or
&mut TcpListener
. Read more
unsafe fn as_unscoped_tcp_listener_view(&self) -> View<'static, TcpListener>
[src]
unsafe fn as_unscoped_tcp_listener_view(&self) -> View<'static, TcpListener>
[src]Like as_tcp_listener_view
, but returns a value which is not
explicitly tied to the lifetime of self
. Read more
fn as_udp_socket_view(&self) -> View<'_, UdpSocket>
[src]
fn as_udp_socket_view(&self) -> View<'_, UdpSocket>
[src]Utility for returning a value which dereferences to a &UdpSocket
or
&mut UdpSocket
. Read more
unsafe fn as_unscoped_udp_socket_view(&self) -> View<'static, UdpSocket>
[src]
unsafe fn as_unscoped_udp_socket_view(&self) -> View<'static, UdpSocket>
[src]Like as_udp_socket_view
, but returns a value which is not explicitly
tied to the lifetime of self
. Read more
fn as_unix_stream_view(&self) -> View<'_, UnixStream>
[src]
fn as_unix_stream_view(&self) -> View<'_, UnixStream>
[src]Utility for returning a value which dereferences to a &UnixStream
or
&mut UnixStream
. Read more
unsafe fn as_unscoped_unix_stream_view(&self) -> View<'static, UnixStream>
[src]
unsafe fn as_unscoped_unix_stream_view(&self) -> View<'static, UnixStream>
[src]Like as_unix_stream_view
, but returns a value which is not explicitly
tied to the lifetime of self
. Read more
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,
impl<T> HalfDuplexLayered for T where
T: Duplex + ReadLayered + WriteLayered,
[src]
T: Duplex + ReadLayered + WriteLayered,