aws_multipart_upload/encoder/
json_encoder.rs1use bytes::BufMut as _;
2use serde::Serialize;
3
4use super::PartEncoder;
5use crate::request::{PartBody, PartNumber};
6
7#[derive(Debug, Clone, Copy, Default)]
10pub struct JsonLinesEncoder {
11 _p: (),
12}
13
14impl JsonLinesEncoder {
15 pub fn new() -> Self {
17 Self::default()
18 }
19}
20
21impl<Item: Serialize> PartEncoder<Item> for JsonLinesEncoder {
22 type Error = serde_json::Error;
23
24 fn encode(
25 &mut self,
26 part: &mut PartBody,
27 _part_number: PartNumber,
28 item: Item,
29 ) -> Result<(), Self::Error> {
30 let item = serde_json::to_vec(&item)?;
31 part.reserve(item.len() + 1);
32 part.put(item.as_ref());
33 part.put_u8(b'\n');
34 Ok(())
35 }
36}