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]