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}}.