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() {
|
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();
|
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> {
|
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 {
|
Self {
|
||||||
reader,
|
reader,
|
||||||
writer,
|
writer,
|
||||||
|
@ -1,9 +1,6 @@
|
|||||||
use {
|
use {
|
||||||
crate::{error::Error, B64Alphabet},
|
crate::{error::Error, B64Alphabet},
|
||||||
std::{
|
std::io::{ErrorKind, Read, Write},
|
||||||
fmt::Write,
|
|
||||||
io::{ErrorKind, Read},
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Encodes arbitraty data as b64 encoded ASCII text
|
/// 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)]
|
#[allow(clippy::needless_range_loop)]
|
||||||
pub fn encode(&mut self) -> Result<(), Error> {
|
pub fn encode(&mut self) -> Result<(), Error> {
|
||||||
let mut total: usize = 0;
|
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)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
@ -108,20 +103,20 @@ mod tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn encode() {
|
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();
|
encoder.encode().unwrap();
|
||||||
assert_eq!(encoder.output(), "SGVsbG8sIFdvcmxk");
|
assert_eq!(encoder.writer, "SGVsbG8sIFdvcmxk".as_bytes());
|
||||||
encoder = Encoder {
|
encoder = Encoder {
|
||||||
reader: "Hello, World!".as_bytes(),
|
reader: "Hello, World!".as_bytes(),
|
||||||
writer: String::new(),
|
writer: vec![],
|
||||||
alphabet: B64Alphabet::default(),
|
alphabet: B64Alphabet::default(),
|
||||||
wrap: None,
|
wrap: None,
|
||||||
};
|
};
|
||||||
encoder.encode().unwrap();
|
encoder.encode().unwrap();
|
||||||
assert_eq!(encoder.output(), "SGVsbG8sIFdvcmxkIQ==");
|
assert_eq!(encoder.writer, "SGVsbG8sIFdvcmxkIQ==".as_bytes());
|
||||||
encoder = Encoder::new("Hello, World!\n".as_bytes(), String::new(), None, None);
|
encoder = Encoder::new("Hello, World!\n".as_bytes(), vec![], None, None);
|
||||||
encoder.encode().unwrap();
|
encoder.encode().unwrap();
|
||||||
assert_eq!(encoder.output(), "SGVsbG8sIFdvcmxkIQo=");
|
assert_eq!(encoder.writer, "SGVsbG8sIFdvcmxkIQo=".as_bytes());
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -129,8 +124,8 @@ mod tests {
|
|||||||
let infile = File::open("src/testdata/lorem.txt").unwrap();
|
let infile = File::open("src/testdata/lorem.txt").unwrap();
|
||||||
let reader = BufReader::new(infile);
|
let reader = BufReader::new(infile);
|
||||||
let outfile = fs::read_to_string("src/testdata/lorem_b64.txt").unwrap();
|
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();
|
encoder.encode().unwrap();
|
||||||
assert_eq!(encoder.output(), outfile);
|
assert_eq!(encoder.writer, outfile.as_bytes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user