/// Use lower-case hexadecimal integers for the `Debug` trait (like [the `x?` type](../../std/fmt/index.html#formatting-traits)).
/// Use upper-case hexadecimal integers for the `Debug` trait (like [the `X?` type](../../std/fmt/index.html#formatting-traits)).
/// This is used to indicate for integer formats that the padding to width should both be done with a 0 character as well as be sign-aware
/// Same as [`Arguments::as_str`], but will only return `Some(s)` if it can be determined at compile time.
/// `Display` for a type might not necessarily be a lossless or complete representation of the type.
/// It may omit internal state, precision, or other information the type does not consider important
/// for user-facing output, as determined by the type. As such, the output of `Display` might not be
/// possible to parse, and even if it is, the result of parsing might not exactly match the original
/// conveniently machine-parseable and not just meant for human consumption, then the type may wish
note = "in format strings you may be able to use `{{:?}}` (or {{:#?}} for pretty-print) instead",
/// The `LowerHex` trait should format its output as a number in hexadecimal, with `a` through `f`
/// The `UpperHex` trait should format its output as a number in hexadecimal, with `A` through `F`
/// The `Pointer` trait should format its output as a memory location. This is commonly presented
/// as hexadecimal. For more information on formatters, see [the module-level documentation][module].
/// The act of reading an address changes the program itself, and may change how the data is represented
/// The printed pointer values are not guaranteed to be stable nor unique identifiers of objects.
/// Rust allows moving values to different memory locations, and may reuse the same memory locations
/// The `LowerExp` trait should format its output in scientific notation with a lower-case `e`.
/// The `UpperExp` trait should format its output in scientific notation with an upper-case `E`.
unsafe fn run(fmt: &mut Formatter<'_>, arg: &rt::Placeholder, args: &[rt::Argument<'_>]) -> Result {
// SAFETY: the position was derived from an iterator, so is known to be within bounds, and at a char boundary