# How to allow arbitrary expressions in format strings

**URL:** <https://internals.rust-lang.org/t/how-to-allow-arbitrary-expressions-in-format-strings/15812>\
**Category:** language design\
**Created:** [December 18, 2021, 5:18pm UTC](https://internals.rust-lang.org/t/how-to-allow-arbitrary-expressions-in-format-strings/15812 "2021-12-18T17:18:08Z")\
**Posts on this page:** 1\
**Showing post:** 8

<div class="post-metadata">

**Author:** ![josh](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/josh/32/5934_2.png) [@josh](https://internals.rust-lang.org/u/josh)\
**Post date:** [December 18, 2021, 9:35pm UTC](https://internals.rust-lang.org/t/how-to-allow-arbitrary-expressions-in-format-strings/15812/8 "2021-12-18T21:35:42Z")

</div>

`format!("...{var}...")` is syntactic sugar for `format!("...{var}...", var=var)`. I don't think we _should_ provide a syntactic sugar for `format!("...{var}...", var=foo+bar.baz())`; I don't think we should support nesting arbitrary expressions into the format string. Simple braced identifiers are easy to mentally parse without ambiguity; arbitrary expressions are not.

_If_ we consider allowing arbitrary expressions, I think parentheses would be a good minimum requirement.

---

_[View the full topic](https://internals.rust-lang.org/t/how-to-allow-arbitrary-expressions-in-format-strings/15812)._
