Struct indenter::Indented

source ·
pub struct Indented<'a, D: ?Sized> { /* private fields */ }
Expand description

Helper struct for efficiently indenting multi line display implementations

Explanation

This type will never allocate a string to handle inserting indentation. It instead leverages the write_str function that serves as the foundation of the core::fmt::Write trait. This lets it intercept each piece of output as its being written to the output buffer. It then splits on newlines giving slices into the original string. Finally we alternate writing these lines and the specified indentation to the output buffer.

Implementations§

source§

impl<'a, D> Indented<'a, D>

source

pub fn ind(self, ind: usize) -> Self

Sets the format to Format::Numbered with the provided index

source

pub fn with_str(self, indentation: &'static str) -> Self

Sets the format to Format::Uniform with the provided static string

source

pub fn with_format(self, format: Format<'a>) -> Self

Construct an indenter with a user defined format

Trait Implementations§

source§

impl<T> Write for Indented<'_, T>
where T: Write + ?Sized,

source§

fn write_str(&mut self, s: &str) -> Result

Writes a string slice into this writer, returning whether the write succeeded. Read more
1.1.0 · source§

fn write_char(&mut self, c: char) -> Result<(), Error>

Writes a char into this writer, returning whether the write succeeded. Read more
1.0.0 · source§

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

Glue for usage of the write! macro with implementors of this trait. Read more

Auto Trait Implementations§

§

impl<'a, D> !RefUnwindSafe for Indented<'a, D>

§

impl<'a, D> !Send for Indented<'a, D>

§

impl<'a, D> !Sync for Indented<'a, D>

§

impl<'a, D: ?Sized> Unpin for Indented<'a, D>

§

impl<'a, D> !UnwindSafe for Indented<'a, D>

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.