macro_rules! format_args { ($fmt:expr, $($args:tt)*) => { ... }; }
The core macro for formatted string creation & output.
This macro functions by taking a formatting string literal containing {}
for each additional argument passed. format_args!
prepares the additional parameters to ensure the output can be interpreted as a string and canonicalizes the arguments into a single type. Any value that implements the Display
trait can be passed to format_args!
, as can any Debug
implementation be passed to a {:?}
within the formatting string.
This macro produces a value of type fmt::Arguments
. This value can be passed to the macros within std::fmt
for performing useful redirection. All other formatting macros (format!
, write!
, println!
, etc) are proxied through this one. format_args!
, unlike its derived macros, avoids heap allocations.
For more information, see the documentation in std::fmt
.
use std::fmt; let s = fmt::format(format_args!("hello {}", "world")); assert_eq!(s, format!("hello {}", "world"));
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/macro.format_args.html