Struct const_panic::fmt::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 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.

Trait Implementations§

source§

impl Clone for FmtArg

source§

fn clone(&self) -> FmtArg

Returns a copy 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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method 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§

§

impl Freeze for FmtArg

§

impl RefUnwindSafe for FmtArg

§

impl Send for FmtArg

§

impl Sync for FmtArg

§

impl Unpin for FmtArg

§

impl UnwindSafe for FmtArg

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§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

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

impl<T> CloneToUninit for T
where T: Copy,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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.