diff --git a/README.md b/README.md index e0ccfbe..70a3d0a 100644 --- a/README.md +++ b/README.md @@ -28,9 +28,9 @@ use { }; fn main() { - let mut encoder = Encoder::new("Hello, World!".as_bytes(), String::new(), None, Some(76)); + let mut encoder = Encoder::new("Hello, World!".as_bytes(), vec![], None, Some(76)); encoder.encode().unwrap(); - assert_eq!(encoder.output(), "SGVsbG8sIFdvcmxkIQ=="); + assert_eq!(encoder.output(), b"SGVsbG8sIFdvcmxkIQ=="); } ``` diff --git a/src/decode.rs b/src/decode.rs index 760d4ad..db2b19a 100644 --- a/src/decode.rs +++ b/src/decode.rs @@ -12,7 +12,12 @@ pub struct Decoder { } impl Decoder { - pub fn new(reader: R, writer: W, alphabet: Option, ignore_whitespace: bool) -> Self { + pub fn new( + reader: R, + writer: W, + alphabet: Option, + ignore_whitespace: bool, + ) -> Self { Self { reader, writer, diff --git a/src/encode.rs b/src/encode.rs index 326e866..60baf7e 100644 --- a/src/encode.rs +++ b/src/encode.rs @@ -1,9 +1,6 @@ use { crate::{error::Error, B64Alphabet}, - std::{ - fmt::Write, - io::{ErrorKind, Read}, - }, + std::io::{ErrorKind, Read, Write}, }; /// Encodes arbitraty data as b64 encoded ASCII text @@ -30,6 +27,10 @@ impl Encoder { } } + pub fn output(self) -> W { + self.writer + } + #[allow(clippy::needless_range_loop)] pub fn encode(&mut self) -> Result<(), Error> { let mut total: usize = 0; @@ -92,12 +93,6 @@ impl Encoder { } } -impl Encoder { - pub fn output(self) -> String { - self.writer - } -} - #[cfg(test)] mod tests { use super::*; @@ -108,20 +103,20 @@ mod tests { #[test] fn encode() { - let mut encoder = Encoder::new("Hello, World".as_bytes(), String::new(), None, None); + let mut encoder = Encoder::new("Hello, World".as_bytes(), vec![], None, None); encoder.encode().unwrap(); - assert_eq!(encoder.output(), "SGVsbG8sIFdvcmxk"); + assert_eq!(encoder.writer, "SGVsbG8sIFdvcmxk".as_bytes()); encoder = Encoder { reader: "Hello, World!".as_bytes(), - writer: String::new(), + writer: vec![], alphabet: B64Alphabet::default(), wrap: None, }; encoder.encode().unwrap(); - assert_eq!(encoder.output(), "SGVsbG8sIFdvcmxkIQ=="); - encoder = Encoder::new("Hello, World!\n".as_bytes(), String::new(), None, None); + assert_eq!(encoder.writer, "SGVsbG8sIFdvcmxkIQ==".as_bytes()); + encoder = Encoder::new("Hello, World!\n".as_bytes(), vec![], None, None); encoder.encode().unwrap(); - assert_eq!(encoder.output(), "SGVsbG8sIFdvcmxkIQo="); + assert_eq!(encoder.writer, "SGVsbG8sIFdvcmxkIQo=".as_bytes()); } #[test] @@ -129,8 +124,8 @@ mod tests { let infile = File::open("src/testdata/lorem.txt").unwrap(); let reader = BufReader::new(infile); let outfile = fs::read_to_string("src/testdata/lorem_b64.txt").unwrap(); - let mut encoder = Encoder::new(reader, String::new(), None, Some(76)); + let mut encoder = Encoder::new(reader, vec![], None, Some(76)); encoder.encode().unwrap(); - assert_eq!(encoder.output(), outfile); + assert_eq!(encoder.writer, outfile.as_bytes()); } }