Skip to main content

FmtArg

Struct FmtArg 

Source
pub struct FmtArg {
    pub indentation: u8,
    pub is_alternate: bool,
    pub fmt_kind: FmtKind,
    pub number_fmt: NumberFmt,
}
Expand description

Carries all of the configuration for formatting functions.

§Example

use const_panic::{ArrayString, FmtArg, StdWrapper};

// `StdWrapper` wraps references to std types to provide their `to_panicvals` methods
const ARRAY: &[&str] = &["3", "foo\nbar", "\0qux"];

// Debug formatting
assert_eq!(
    const_panic::concat_!(FmtArg::DEBUG; ARRAY),
    r#"["3", "foo\nbar", "\x00qux"]"#
);

// Alternate-Debug formatting
assert_eq!(
    const_panic::concat_!(FmtArg::ALT_DEBUG; ARRAY),
    concat!(
        "[\n",
        "    \"3\",\n",
        "    \"foo\\nbar\",\n",
        "    \"\\x00qux\",\n",
        "]",
    )
);

// Display formatting
assert_eq!(
    const_panic::concat_!(FmtArg::DISPLAY; ARRAY),
    "[3, foo\nbar, \x00qux]"
);

// Alternate-Display formatting
assert_eq!(
    const_panic::concat_!(FmtArg::ALT_DISPLAY; ARRAY),
    concat!(
        "[\n",
        "    3,\n",
        "    foo\n",
        "bar,\n",
        "    \x00qux,\n",
        "]",
    )
);

Fields§

§indentation: u8

How much indentation is needed for a field/array element.

Indentation is used by fmt::Delimiter and by fmt::Separator, when the is_alternate field flag is enabled.

§is_alternate: bool

Whether alternate formatting is being used.

§fmt_kind: FmtKind

Whether this is intended to be Display or Debug formatted.

§number_fmt: NumberFmt

What integers are formatted as: decimal, hexadecimal, or binary.

Implementations§

Source§

impl FmtArg

Source

pub const fn pack(self) -> PackedFmtArg

Converts this FmtArg into a PackedFmtArg, which is smaller but can only be converted back into a FmtArg.

Source§

impl FmtArg

Source

pub const DISPLAY: Self

A FmtArg with no indentation and Display formatting.

Source

pub const ALT_DISPLAY: Self

A FmtArg with alternate Display formatting, starting with no indentation.

Source

pub const DEBUG: Self

A FmtArg with Debug formatting and no indentation.

Source

pub const ALT_DEBUG: Self

A FmtArg with alternate Debug formatting, starting with no indentation.

Source

pub const BIN: Self

A FmtArg with Debug and Binary formatting and no indentation.

Source

pub const ALT_BIN: Self

A FmtArg with alternate Debug and Binary formatting, starting with no indentation.

Source

pub const HEX: Self

A FmtArg with Debug and Hexadecimal formatting and no indentation.

Source

pub const ALT_HEX: Self

A FmtArg with alternate Debug and Hexadecimal formatting, starting with no indentation.

Source

pub const fn set_alternate(self, is_alternate: bool) -> Self

Sets whether alternate formatting is enabled

Source

pub const fn set_display(self) -> Self

Changes the formatting to Display.

Source

pub const fn set_debug(self) -> Self

Changes the formatting to Debug.

Source

pub const fn set_hex(self) -> Self

Changes the formatting to Debug, and number formatting to Hexadecimal.

Source

pub const fn set_bin(self) -> Self

Changes the formatting to Debug, and number formatting to Binary.

Source§

impl FmtArg

Source

pub const fn indent(self) -> Self

Increments the indentation by INDENTATION_STEP spaces.

Source

pub const fn unindent(self) -> Self

Decrement the indentation by INDENTATION_STEP spaces.

Trait Implementations§

Source§

impl Clone for FmtArg

Source§

fn clone(&self) -> FmtArg

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FmtArg

Source§

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

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

impl PartialEq for FmtArg

Source§

fn eq(&self, other: &FmtArg) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for FmtArg

Source§

impl StructuralPartialEq for FmtArg

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
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.