Use serde_json::to_writer for JsonEmitter::emit

Avoids an unnecessary intermediate string.
This commit is contained in:
Jeremy Fitzhardinge 2023-09-09 11:30:23 -07:00 committed by Jeremy Fitzhardinge
parent 54267ddc0c
commit 00adbb2d5a

View File

@ -148,11 +148,12 @@ impl JsonEmitter {
fn emit(&mut self, val: EmitTyped<'_>) -> io::Result<()> {
if self.pretty {
writeln!(self.dst, "{}", serde_json::to_string_pretty(&val).unwrap())
serde_json::to_writer_pretty(&mut *self.dst, &val)?
} else {
writeln!(self.dst, "{}", serde_json::to_string(&val).unwrap())
}
.and_then(|_| self.dst.flush())
serde_json::to_writer(&mut *self.dst, &val)?
};
self.dst.write_all(b"\n")?;
self.dst.flush()
}
}