From 650c17f4e61710b942b574687e491a6410dd5f88 Mon Sep 17 00:00:00 2001 From: Pablo Sichert Date: Wed, 12 Jan 2022 16:06:58 +0100 Subject: [PATCH] Use `to_writer` to avoid extra allocation and copy Signed-off-by: Pablo Sichert --- src/codecs/format/json.rs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/codecs/format/json.rs b/src/codecs/format/json.rs index 33b47e984737b..153f5d8668be3 100644 --- a/src/codecs/format/json.rs +++ b/src/codecs/format/json.rs @@ -117,14 +117,12 @@ impl Encoder for JsonSerializer { type Error = crate::Error; fn encode(&mut self, event: Event, buffer: &mut bytes::BytesMut) -> Result<(), Self::Error> { - let json = match event { - Event::Log(log) => serde_json::to_vec(&log), - Event::Metric(metric) => serde_json::to_vec(&metric), - }?; - - buffer.put(json.as_slice()); - - Ok(()) + let writer = buffer.writer(); + match event { + Event::Log(log) => serde_json::to_writer(writer, &log), + Event::Metric(metric) => serde_json::to_writer(writer, &metric), + } + .map_err(Into::into) } }