Struct Argument

Source
pub struct Argument<'a> {
    ty: ArgumentType<'a>,
}
🔬This is a nightly-only experimental API. (fmt_internals)
Expand description

This struct represents a generic “argument” which is taken by format_args!().

This can be either a placeholder argument or a count argument.

  • A placeholder argument contains a function to format the given value. At compile time it is ensured that the function and the value have the correct types, and then this struct is used to canonicalize arguments to one type. Placeholder arguments are essentially an optimized partially applied formatting function, equivalent to exists T.(&T, fn(&T, &mut Formatter<'_>) -> Result.
  • A count argument contains a count for dynamic formatting parameters like precision and width.

Fields§

§ty: ArgumentType<'a>
🔬This is a nightly-only experimental API. (fmt_internals)

Implementations§

Source§

impl Argument<'_>

Source

pub const fn new_display<T: Display>(x: &T) -> Argument<'_>

🔬This is a nightly-only experimental API. (fmt_internals)
Source

pub const fn new_debug<T: Debug>(x: &T) -> Argument<'_>

🔬This is a nightly-only experimental API. (fmt_internals)
Source

pub const fn new_debug_noop<T: Debug>(x: &T) -> Argument<'_>

🔬This is a nightly-only experimental API. (fmt_internals)
Source

pub const fn new_octal<T: Octal>(x: &T) -> Argument<'_>

🔬This is a nightly-only experimental API. (fmt_internals)
Source

pub const fn new_lower_hex<T: LowerHex>(x: &T) -> Argument<'_>

🔬This is a nightly-only experimental API. (fmt_internals)
Source

pub const fn new_upper_hex<T: UpperHex>(x: &T) -> Argument<'_>

🔬This is a nightly-only experimental API. (fmt_internals)
Source

pub const fn new_pointer<T: Pointer>(x: &T) -> Argument<'_>

🔬This is a nightly-only experimental API. (fmt_internals)
Source

pub const fn new_binary<T: Binary>(x: &T) -> Argument<'_>

🔬This is a nightly-only experimental API. (fmt_internals)
Source

pub const fn new_lower_exp<T: LowerExp>(x: &T) -> Argument<'_>

🔬This is a nightly-only experimental API. (fmt_internals)
Source

pub const fn new_upper_exp<T: UpperExp>(x: &T) -> Argument<'_>

🔬This is a nightly-only experimental API. (fmt_internals)
Source

pub const fn from_usize(x: &usize) -> Argument<'_>

🔬This is a nightly-only experimental API. (fmt_internals)
Source

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

🔬This is a nightly-only experimental API. (fmt_internals)

Format this placeholder argument.

§Safety

This argument must actually be a placeholder argument.

Source

pub(super) const fn as_u16(&self) -> Option<u16>

🔬This is a nightly-only experimental API. (fmt_internals)
Source

pub const fn none() -> [Self; 0]

🔬This is a nightly-only experimental API. (fmt_internals)

Used by format_args when all arguments are gone after inlining, when using &[] would incorrectly allow for a bigger lifetime.

This fails without format argument inlining, and that shouldn’t be different when the argument is inlined:

let f = format_args!("{}", "a");
println!("{f}");

Trait Implementations§

Source§

impl<'a> Clone for Argument<'a>

Source§

fn clone(&self) -> Argument<'a>

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<'a> Copy for Argument<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for Argument<'a>

§

impl<'a> RefUnwindSafe for Argument<'a>

§

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

§

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

§

impl<'a> Unpin for Argument<'a>

§

impl<'a> UnsafeUnpin for Argument<'a>

§

impl<'a> UnwindSafe for Argument<'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> 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 #126799)
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, 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> SizedTypeProperties for T

Source§

#[doc(hidden)] const IS_ZST: bool = _

🔬This is a nightly-only experimental API. (sized_type_properties)
true if this type requires no storage. false if its size is greater than zero. Read more
Source§

#[doc(hidden)] const LAYOUT: Layout = _

🔬This is a nightly-only experimental API. (sized_type_properties)
Source§

#[doc(hidden)] const MAX_SLICE_LEN: usize = _

🔬This is a nightly-only experimental API. (sized_type_properties)
The largest safe length for a [Self]. Read more
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.
Source§

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