From 903d516af8d59ece2f96a84976cd82d72fdf7a44 Mon Sep 17 00:00:00 2001 From: Nathan Fisher Date: Sat, 11 Jan 2025 00:14:24 -0500 Subject: [PATCH] Add newline after encoding --- README.md | 2 +- src/encode.rs | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6f62caf..cd04059 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ use { fn main() { let mut encoder = Encoder::new("Hello, World!".as_bytes(), vec![], None, Some(76)); encoder.encode().unwrap(); - assert_eq!(encoder.output(), b"SGVsbG8sIFdvcmxkIQ=="); + assert_eq!(encoder.output(), b"SGVsbG8sIFdvcmxkIQ==\n"); } ``` diff --git a/src/encode.rs b/src/encode.rs index 7293373..f58ec66 100644 --- a/src/encode.rs +++ b/src/encode.rs @@ -15,7 +15,7 @@ use { /// # fn main() { /// let mut encoder = Encoder::new("Hello, World!".as_bytes(), vec![], None, Some(76)); /// encoder.encode().unwrap(); -/// assert_eq!(encoder.output(), b"SGVsbG8sIFdvcmxkIQ=="); +/// assert_eq!(encoder.output(), b"SGVsbG8sIFdvcmxkIQ==\n"); /// # } /// ``` pub struct Encoder { @@ -93,6 +93,13 @@ impl Encoder { self.writer.write_all(&obuf)?; } if outlen < 4 { + if let Some(wrap) = self.wrap { + if total % wrap != 0 { + writeln!(self.writer)?; + } + } else { + writeln!(self.writer)?; + } break; } } @@ -121,10 +128,10 @@ mod tests { wrap: None, }; encoder.encode().unwrap(); - assert_eq!(encoder.writer, b"SGVsbG8sIFdvcmxkIQ=="); + assert_eq!(encoder.writer, b"SGVsbG8sIFdvcmxkIQ==\n"); encoder = Encoder::new("Hello, World!\n".as_bytes(), vec![], None, None); encoder.encode().unwrap(); - assert_eq!(encoder.writer, b"SGVsbG8sIFdvcmxkIQo="); + assert_eq!(encoder.writer, b"SGVsbG8sIFdvcmxkIQo=\n"); } #[test]