Skip to main content

FormatSink

Struct FormatSink 

Source
pub struct FormatSink<'a> { /* private fields */ }
Expand description

The writer a format callback appends to, carrying the FormatStyle it is rendering under.

A wrapper rather than an extra parameter, so that a container passing its writer to an element descriptor passes the style with it and cannot forget to.

Implementations§

Source§

impl<'a> FormatSink<'a>

Source

pub fn display(out: &'a mut dyn Write) -> FormatSink<'a>

A sink in the program’s own rendering.

Source

pub fn debug(out: &'a mut dyn Write) -> FormatSink<'a>

A sink in the debugger’s rendering.

Source

pub fn style(&self) -> FormatStyle

The style this sink renders under.

Source

pub fn styled(out: &'a mut dyn Write, style: FormatStyle) -> FormatSink<'a>

A sink over out in a style read off another one.

For the callbacks that render a part into a scratch String before placing it — map_format orders its entries by key and has to have them rendered to place them (ADR-138 decision 4). Such a callback holds its style across the buffer and rebuilds a sink around it, which is what keeps a Map[Text, Text] quoting its keys and values in the debugger, exactly as a Vec[Text] does without needing a buffer at all.

Every scratch buffer is a place the style could be dropped, and dropping it is silent — the value still renders, just in the other rendering. The style is Copy so that carrying it across is the easy thing to write.

Trait Implementations§

Source§

impl Write for FormatSink<'_>

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> !RefUnwindSafe for FormatSink<'a>

§

impl<'a> !Send for FormatSink<'a>

§

impl<'a> !Sync for FormatSink<'a>

§

impl<'a> !UnwindSafe for FormatSink<'a>

§

impl<'a> Freeze for FormatSink<'a>

§

impl<'a> Unpin for FormatSink<'a>

§

impl<'a> UnsafeUnpin for FormatSink<'a>

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.