Struct basic_text::TextDuplexer[][src]

pub struct TextDuplexer<Inner: HalfDuplex + ReadStr + WriteStr> { /* fields omitted */ }

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 + ReadStr + ReadLayered + ReadStrLayered + WriteStr + WriteLayered> TextDuplexer<Inner>[src]

pub fn new(inner: Inner) -> Self[src]

Construct a new instance of TextDuplexer wrapping inner.

pub fn with_bom_compatibility(mut 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]

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 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]

Return the underlying stream object.

Trait Implementations

impl<Inner: HalfDuplexLayered + ReadStr + WriteStr + AsRawFd> AsRawFd for TextDuplexer<Inner>[src]

impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> Bufferable for TextDuplexer<Inner>[src]

impl<Inner: HalfDuplexLayered + ReadStr + WriteStr + Debug> Debug for TextDuplexer<Inner>[src]

impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> Duplex for TextDuplexer<Inner>[src]

impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> Read for TextDuplexer<Inner>[src]

impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> ReadLayered for TextDuplexer<Inner>[src]

impl<Inner: HalfDuplexLayered + ReadStrLayered + WriteStr> ReadStr 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> Write 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> WriteText for TextDuplexer<Inner>[src]

Auto Trait Implementations

impl<Inner> RefUnwindSafe for TextDuplexer<Inner> where
    Inner: RefUnwindSafe
[src]

impl<Inner> Send for TextDuplexer<Inner> where
    Inner: Send
[src]

impl<Inner> Sync for TextDuplexer<Inner> where
    Inner: Sync
[src]

impl<Inner> Unpin for TextDuplexer<Inner> where
    Inner: Unpin
[src]

impl<Inner> UnwindSafe for TextDuplexer<Inner> where
    Inner: UnwindSafe
[src]

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> AsUnsafeFile for T where
    T: AsRawFd

impl<T> AsUnsafeHandle for T where
    T: AsRawFd

impl<T> AsUnsafeSocket for T where
    T: AsRawFd

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> HalfDuplex for T where
    T: Duplex + Read + Write
[src]

impl<T> HalfDuplexLayered for T where
    T: ReadLayered + WriteLayered + Duplex
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.