Struct tabwriter::TabWriter

source ·
pub struct TabWriter<W> { /* private fields */ }
Expand description

TabWriter wraps an arbitrary writer and aligns tabbed output.

Elastic tabstops work by aligning contiguous tabbed delimited fields known as column blocks. When a line appears that breaks all contiguous blocks, all buffered output will be flushed to the underlying writer. Otherwise, output will stay buffered until flush is explicitly called.

Implementations§

source§

impl<W: Write> TabWriter<W>

source

pub fn new(w: W) -> TabWriter<W>

Create a new TabWriter from an existing Writer.

All output written to Writer is passed through TabWriter. Contiguous column blocks indicated by tabs are aligned.

Note that flush must be called to guarantee that TabWriter will write to the given writer.

source

pub fn minwidth(self, minwidth: usize) -> TabWriter<W>

Set the minimum width of each column. That is, all columns will have at least the size given here. If a column is smaller than minwidth, then it is padded with spaces.

The default minimum width is 2.

source

pub fn padding(self, padding: usize) -> TabWriter<W>

Set the padding between columns. All columns will be separated by at least the number of spaces indicated by padding. If padding is zero, then columns may run up against each other without any separation.

The default padding is 2.

source

pub fn alignment(self, alignment: Alignment) -> TabWriter<W>

Set the alignment of text within cells. This will effect future flushes.

The default alignment is Alignment::Left.

source

pub fn ansi(self, yes: bool) -> TabWriter<W>

Ignore ANSI escape codes when computing the number of display columns.

This is disabled by default. (But is enabled by default when the deprecated ansi_formatting crate feature is enabled.)

source

pub fn tab_indent(self, yes: bool) -> TabWriter<W>

Always use tabs for indentation columns (i.e., padding of leading empty cells on the left).

This is disabled by default.

source

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

Unwraps this TabWriter, returning the underlying writer.

This internal buffer is flushed before returning the writer. If the flush fails, then an error is returned.

Trait Implementations§

source§

impl<W: Debug> Debug for TabWriter<W>

source§

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

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

impl<W: Write> Write for TabWriter<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 TabWriter<W>
where W: RefUnwindSafe,

§

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

§

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

§

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

§

impl<W> UnwindSafe for TabWriter<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.