Struct Indenter

Source
pub struct Indenter<'a, Opt: IndentedOptions<'a>> { /* private fields */ }
Expand description

The public face of the library, this is the type that must be created to use the crate::IndentedDisplay trait

This utilizes a std::fmt::Write formatter as its output, a base indent string that is used for all levels of indentation (unless overridden individually by indentation frames), and an options structure that contains options that may be interrogated by the implementation of crate::IndentedDisplay

Implementations§

Source§

impl<'a, Opt: IndentedOptions<'a>> Indenter<'a, Opt>

Source

pub fn new(fmt: &'a mut (dyn Write + 'a), s: &'a str, options: &'a Opt) -> Self

Create a new Indenter, to be used with types that implement the crate::IndentedDisplay trait; this specifies the formatter, the base indentation string, and the options for the indentation

Source

pub fn sub(&self) -> Self

Create a new subframe of the Indenter using its base indentation for this indentation level; this is invoked by the indent function in an crate::IndentedDisplay trait implementation to create subframes of indentation. The subframe is removed from the indentation output stack when it is dropped, so it must either go out of scope or be explicitly dropped.

Source

pub fn push(&self, s: &'a str) -> Self

Create a new subframe of the Indenter using a specific string, indentation for this indentation level; this is invoked by the indent function in an crate::IndentedDisplay trait implementation to create subframes of indentation. The subframe is removed from the indentation output stack when it is dropped, so it must either go out of scope or be explicitly dropped.

Currently the string must outlive the Indenter - usually this means it is static.

Source

pub fn pop(self) -> Self

Pop this subframe and return its parent

Source

pub fn options(&self) -> &Opt

Borrow the options used to invoke the Indenter.

This may be invoked by the indent function in an crate::IndentedDisplay trait implementation to determine the setting of indentation options that may affect its output.

Trait Implementations§

Source§

impl<'a, Opt: IndentedOptions<'a>> Write for Indenter<'a, Opt>

Source§

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

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, Opt> Freeze for Indenter<'a, Opt>

§

impl<'a, Opt> !RefUnwindSafe for Indenter<'a, Opt>

§

impl<'a, Opt> !Send for Indenter<'a, Opt>

§

impl<'a, Opt> !Sync for Indenter<'a, Opt>

§

impl<'a, Opt> Unpin for Indenter<'a, Opt>

§

impl<'a, Opt> !UnwindSafe for Indenter<'a, Opt>

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

Source§

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

Source§

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.