pub struct LineWriter<W: Write>(/* private fields */);
Expand description

A drop-in replacement for std::io::LineWriter with more functionality.

This is, in fact, only a thin wrapper around BufWriter<W, policy::FlushOnNewline>, which demonstrates the power of custom WriterPolicy implementations.

Implementations§

source§

impl<W: Write> LineWriter<W>

source

pub fn new(inner: W) -> Self

Wrap inner with the default buffer capacity.

source

pub fn with_capacity(cap: usize, inner: W) -> Self

Wrap inner with the given buffer capacity.

source

pub fn new_ringbuf(inner: W) -> Self

Wrap inner with the default buffer capacity using a ringbuffer.

source

pub fn with_capacity_ringbuf(cap: usize, inner: W) -> Self

Wrap inner with the given buffer capacity using a ringbuffer.

source

pub fn with_buffer(buf: Buffer, inner: W) -> LineWriter<W>

Wrap inner with an existing Buffer instance.

§Note

Does not clear the buffer first! If there is data already in the buffer it will be written out on the next flush!

source

pub fn get_ref(&self) -> &W

Get a reference to the inner writer.

source

pub fn get_mut(&mut self) -> &mut W

Get a mutable reference to the inner writer.

§Note

If the buffer has not been flushed, writing directly to the inner type will cause data inconsistency.

source

pub fn capacity(&self) -> usize

Get the capacity of the inner buffer.

source

pub fn buf_len(&self) -> usize

Get the number of bytes currently in the buffer.

source

pub fn reserve(&mut self, additional: usize)

Ensure enough space in the buffer for at least additional bytes. May not be quite exact due to implementation details of the buffer’s allocator.

source

pub fn into_inner(self) -> Result<W, IntoInnerError<Self>>

Flush the buffer and unwrap, returning the inner writer on success, or a type wrapping self plus the error otherwise.

source

pub fn into_inner_with_err(self) -> (W, Option<Error>)

Flush the buffer and unwrap, returning the inner writer and any error encountered during flushing.

source

pub fn into_inner_with_buf(self) -> (W, Buffer)

Consume self and return both the underlying writer and the buffer.

Trait Implementations§

source§

impl<W: Write + Debug> Debug for LineWriter<W>

source§

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

Formats the value using the given formatter. Read more
source§

impl<W: Write> Write for LineWriter<W>

source§

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<()>

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

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

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

fn is_write_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
1.0.0 · source§

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

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

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

🔬This is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
1.0.0 · source§

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

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 · source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

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

Auto Trait Implementations§

§

impl<W> RefUnwindSafe for LineWriter<W>
where W: RefUnwindSafe,

§

impl<W> Send for LineWriter<W>
where W: Send,

§

impl<W> Sync for LineWriter<W>
where W: Sync,

§

impl<W> Unpin for LineWriter<W>
where W: Unpin,

§

impl<W> UnwindSafe for LineWriter<W>
where W: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

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

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

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

Performs the conversion.