Struct basic_text::TextWriter[][src]

pub struct TextWriter<Inner> { /* fields omitted */ }
Expand description

A WriteLayered implementation which translates to an output WriteLayered producing a valid Basic Text stream from an arbitrary byte sequence.

write is not guaranteed to perform a single operation, because short writes could produce invalid UTF-8, so write will retry as needed.

Examples

use basic_text::TextWriter;

let output = TextWriter::new(std::io::stdout());

// write to `output`

Implementations

impl<Inner: Write> TextWriter<Utf8Writer<LayeredWriter<Inner>>>[src]

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

Construct a new instance of TextWriter wrapping inner, which can be anything that implements Write.

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]

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.

impl<Inner: WriteStr + WriteLayered> TextWriter<Inner>[src]

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

Construct a new instance of TextWriter wrapping inner, which can be anything that implements WriteStr + WriteLayered, such as a Utf8Writer.

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]

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 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: WriteStr + WriteLayered + AsRawHandleOrSocket> AsRawHandleOrSocket for TextWriter<Inner>[src]

impl<Inner: WriteStr + WriteLayered> Bufferable for TextWriter<Inner>[src]

fn abandon(&mut self)[src]

Close the resource and abandon any pending buffered contents or errors.

fn suggested_buffer_size(&self) -> usize[src]

A suggested size, in bytes, for buffering for performance.

impl<Inner: Debug> Debug for TextWriter<Inner>[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl<Inner: WriteStr + WriteLayered> Write for TextWriter<Inner>[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]

Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more

fn is_write_vectored(&self) -> bool[src]

🔬 This is a nightly-only experimental API. (can_vector)

Determines if this Writer has an efficient write_vectored implementation. Read more

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize>[src]

Like write, except that it writes from a slice of buffers. Read more

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<()>[src]

🔬 This is a nightly-only experimental API. (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]

Attempts to write an entire buffer into this writer. Read more

fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>1.0.0[src]

Writes a formatted string into this writer, returning any error encountered. Read more

fn by_ref(&mut self) -> &mut Self1.0.0[src]

Creates a “by reference” adaptor for this instance of Write. Read more

impl<Inner: WriteStr + WriteLayered> WriteLayered for TextWriter<Inner>[src]

fn close(&mut self) -> Result<()>[src]

Flush any buffers and declare the end of the stream. Subsequent writes will fail. Read more

fn flush_with_status(&mut self, status: Status) -> Result<(), Error>[src]

Like Write::flush, but has a status parameter describing the future of the stream: Read more

impl<Inner: WriteStr + WriteLayered> WriteStr for TextWriter<Inner>[src]

fn write_str(&mut self, s: &str) -> Result<()>[src]

Like Write::write_all, but takes a &str, allowing implementors which require valid UTF-8 to avoid re-validating the data. Read more

impl<Inner: WriteStr + WriteLayered> WriteText for TextWriter<Inner>[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]

Like WriteStr::write_str but writes from a TextStr.

impl<Inner: OwnsRaw> OwnsRaw for TextWriter<Inner>[src]

Auto Trait Implementations

impl<Inner> RefUnwindSafe for TextWriter<Inner> where
    Inner: RefUnwindSafe

impl<Inner> Send for TextWriter<Inner> where
    Inner: Send

impl<Inner> Sync for TextWriter<Inner> where
    Inner: Sync

impl<Inner> Unpin for TextWriter<Inner> where
    Inner: Unpin

impl<Inner> UnwindSafe for TextWriter<Inner> where
    Inner: UnwindSafe

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> AsUnsafeHandle for T where
    T: AsRawHandleOrSocket + OwnsRaw
[src]

pub fn as_unsafe_handle(&self) -> UnsafeHandle[src]

Return the contained unsafe handle.

fn eq_handle<Handlelike>(&self, other: &Handlelike) -> bool where
    Handlelike: AsUnsafeHandle
[src]

Test whether self.as_unsafe_handle() is equal to other.as_unsafe_handle(). Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.