macro_rules! iformat {
($($proc_macro:tt)*) => { ... };
}
Expand description
Creates a String by interpolating inline expressions.
Works by expanding to format!
.
// Out-of-literal style (preferred)
iformat!("x plus y is " x + y ".") == format!("x plus y is {}.", x + y)
iformat!("foo: " foo;? ", bar: " bar;#?) == format!("foo: {:?}, bar: {:#?}", foo, bar)
// In-literal style (old)
iformat!("x plus y is {x + y}.") == format!("x plus y is {}.", x + y)
iformat!("foo: {foo:?}, bar: {bar:#?}") == format!("foo: {:?}, bar: {:#?}", foo, bar)
Out-of-literal format specs are roughly the same as in std::fmt
, except:
- they are preceded by a
;
rather than a:
- format parameterization (for width/precision) is not yet supported, literals must be used
- since
3.4e
/3.4E
(as informat!("{:3.4e}", x)
) is invalid in rust (exponent is missing),3.4 e
(with a space) or3.4s
must be used instead - The fill character for padding must be a char literal:
iformat!("padded: " inside_dashes;'-'^30)
In-literal format specs are identical to those found in std::fmt
, except that they also do not
support format parameterization.