I want to write this
write!(f, "{ hash:{}, subject: {} }", self.hash, self.subject)
But since curly braces have special meaning for formatting it's clear that I can't place the outer curly braces like that without escaping. So I tried to escape them.
write!(f, "\{ hash:{}, subject: {} \}", self.hash, self.subject)
Rust doesn't like that either. Then I read this:
The literal characters {, }, or # may be included in a string by preceding them with the \ character. Since \ is already an escape character in Rust strings, a string literal using this escape will look like "\{".
So I tried
write!(f, "\\{ hash:{}, subject: {} \\}", self.hash, self.subject)
But that's also not working. :-(
To escape curly braces and interpolate a string inside the String. format() method use triple curly braces {{{ }}} . Similarly, you can also use the c# string interpolation feature instead of String.
Use "{{ '{' }}") to escape it.)
The only way to have non-matching braces is to quote/escape them with a backslash, but no backslash substitutions will be performed, so the backslash goes into the string along with the lone brace.
Data is represented in name/value pairs. Curly braces hold objects and each name is followed by ':'(colon), the name/value pairs are separated by , (comma). Square brackets hold arrays and values are separated by ,(comma).
You might be reading some out of date docs (e.g. for Rust 0.9)
As of Rust 1.0, the way to escape {
and }
is with another {
or }
write!(f, "{{ hash:{}, subject: {} }}", self.hash, self.subject)
The literal characters
{
and}
may be included in a string by preceding them with the same character. For example, the{
character is escaped with{{
and the}
character is escaped with}}
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With