Skip to main content

Formatter

Struct Formatter 

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

The per-value formatting context passed to DynDisplay::dyn_fmt.

This type mirrors std::fmt::Formatter: it bundles the FormatSpec with the output sink and exposes convenience methods for writing padded output.

It implements std::fmt::Write, so write!(f, ...) works naturally inside a DynDisplay::dyn_fmt implementation.

§Examples

Using write! directly — padding is applied automatically:

use dyf::{DynDisplay, Formatter};
use std::fmt::Write;

struct Point { x: i32, y: i32 }

impl DynDisplay for Point {
    fn dyn_fmt(&self, f: &mut Formatter<'_>) -> dyf::Result {
        Ok(write!(f, "Point({}, {})", self.x, self.y)?)
    }
}

Implementations§

Source§

impl<'a> Formatter<'a>

Source

pub fn new(spec: &'a FormatSpec, out: &'a mut dyn Write) -> Self

Creates a new Formatter wrapping the given spec and output sink.

Source

pub fn spec(&self) -> &FormatSpec

Returns the full FormatSpec.

Source

pub fn fill(&self) -> char

Returns the fill character (defaults to ' ').

Source

pub fn align(&self) -> Align

Returns the effective alignment: the value from the format spec if one was explicitly requested, otherwise the default set by Formatter::set_default_align.

Source

pub fn width(&self) -> Option<usize>

Returns the minimum field width, if specified.

Source

pub fn precision(&self) -> Option<usize>

Returns the precision, if specified.

Source

pub fn sign(&self) -> Option<Sign>

Returns the sign option, if any.

Source

pub fn alternate(&self) -> bool

Returns true if the alternate form (#) was requested.

Source

pub fn zero(&self) -> bool

Returns true if zero-padding (0) was requested.

Source

pub fn fmt_type(&self) -> FmtType

Returns the format type (e.g. FmtType::LowerHex, FmtType::Debug).

Source

pub fn set_default_align(&mut self, align: Align)

Sets the default alignment used when none is specified in the format string.

Overrides the initial Left default. Call this before write!(f, ...) when implementing a type that should right-align by default (e.g. a custom numeric type).

Trait Implementations§

Source§

impl Write for Formatter<'_>

Source§

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

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

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

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> Freeze for Formatter<'a>

§

impl<'a> !RefUnwindSafe for Formatter<'a>

§

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

§

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

§

impl<'a> Unpin for Formatter<'a>

§

impl<'a> UnsafeUnpin for Formatter<'a>

§

impl<'a> !UnwindSafe for Formatter<'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.