From aa2713e2bb99f93b84a21401aab3d9558aacb3ef Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Mon, 1 Feb 2021 18:29:02 -0800 Subject: [PATCH] Support multi-doc serialization --- src/ser.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/ser.rs b/src/ser.rs index c183f0bc..e19f203e 100644 --- a/src/ser.rs +++ b/src/ser.rs @@ -9,6 +9,7 @@ use yaml_rust::{yaml, Yaml, YamlEmitter}; /// A structure for serializing Rust values into YAML. pub struct Serializer { + documents: usize, writer: W, } @@ -18,7 +19,10 @@ where { /// Creates a new YAML serializer. pub fn new(writer: W) -> Self { - Serializer { writer } + Serializer { + documents: 0, + writer, + } } /// Unwrap the underlying `io::Write` object from the `Serializer`. @@ -27,6 +31,10 @@ where } fn write(&mut self, doc: Yaml) -> Result<()> { + if self.documents > 0 { + self.writer.write_all(b"...\n").map_err(error::io)?; + } + self.documents += 1; let mut writer_adapter = FmtToIoWriter { writer: &mut self.writer, };