Change from fmt::Write to io::Write for Encoder
This commit is contained in:
parent
beabb1bb0f
commit
26f0e5ed4a
@ -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==");
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -12,7 +12,12 @@ pub struct Decoder<R: Read, W: Write> {
|
||||
}
|
||||
|
||||
impl<R: Read, W: Write> Decoder<R, W> {
|
||||
pub fn new(reader: R, writer: W, alphabet: Option<B64Alphabet>, ignore_whitespace: bool) -> Self {
|
||||
pub fn new(
|
||||
reader: R,
|
||||
writer: W,
|
||||
alphabet: Option<B64Alphabet>,
|
||||
ignore_whitespace: bool,
|
||||
) -> Self {
|
||||
Self {
|
||||
reader,
|
||||
writer,
|
||||
|
@ -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<R: Read, W: Write> Encoder<R, W> {
|
||||
}
|
||||
}
|
||||
|
||||
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<R: Read, W: Write> Encoder<R, W> {
|
||||
}
|
||||
}
|
||||
|
||||
impl<R: Read> Encoder<R, String> {
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user