Finish documentation and tests
This commit is contained in:
parent
bd8cb8200b
commit
c5e302c9b0
@ -43,7 +43,6 @@ use {
|
|||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let mut decoder = Decoder::new("SGVsbG8sIFdvcmxkIQ==".as_bytes(), vec![], None, false);
|
let mut decoder = Decoder::new("SGVsbG8sIFdvcmxkIQ==".as_bytes(), vec![], None, false);
|
||||||
let output = decoder.decode().unwrap();
|
assert_eq!(decoder.decode().unwrap(), b"Hello, World!");
|
||||||
assert_eq!(&output, b"Hello, World!");
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -4,6 +4,18 @@ use {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Decodes b64 encoded data
|
/// Decodes b64 encoded data
|
||||||
|
/// # Exammple
|
||||||
|
/// ```
|
||||||
|
/// # use {
|
||||||
|
/// # std::io::Read,
|
||||||
|
/// # b64::Decoder,
|
||||||
|
/// # };
|
||||||
|
/// #
|
||||||
|
/// # fn main() {
|
||||||
|
/// let mut decoder = Decoder::new("SGVsbG8sIFdvcmxkIQ==".as_bytes(), vec![], None, false);
|
||||||
|
/// assert_eq!(decoder.decode().unwrap(), b"Hello, World!");
|
||||||
|
/// # }
|
||||||
|
/// ```
|
||||||
pub struct Decoder<R: Read, W: Write> {
|
pub struct Decoder<R: Read, W: Write> {
|
||||||
reader: R,
|
reader: R,
|
||||||
writer: W,
|
writer: W,
|
||||||
@ -107,31 +119,25 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn decode() {
|
fn decode() {
|
||||||
let mut decoder = Decoder::new("SGVsbG8sIFdvcmxk".as_bytes(), vec![], None, false);
|
let mut decoder = Decoder::new("SGVsbG8sIFdvcmxk".as_bytes(), vec![], None, false);
|
||||||
let mut output = decoder.decode().unwrap();
|
assert_eq!(decoder.decode().unwrap(), b"Hello, World");
|
||||||
assert_eq!(output.clone(), b"Hello, World");
|
decoder = Decoder::new("SGVsbG8sIFdvcmxkIQ==".as_bytes(), vec![], None, false);
|
||||||
output.clear();
|
assert_eq!(decoder.decode().unwrap(), b"Hello, World!");
|
||||||
decoder = Decoder::new("SGVsbG8sIFdvcmxkIQ==".as_bytes(), output, None, false);
|
decoder = Decoder::new("SGVsbG8sIFdvcmxkIQo=".as_bytes(), vec![], None, false);
|
||||||
output = decoder.decode().unwrap();
|
assert_eq!(decoder.decode().unwrap(), b"Hello, World!\n");
|
||||||
assert_eq!(output.clone(), b"Hello, World!");
|
|
||||||
output.clear();
|
|
||||||
decoder = Decoder::new("SGVsbG8sIFdvcmxkIQo=".as_bytes(), output, None, false);
|
|
||||||
output = decoder.decode().unwrap();
|
|
||||||
assert_eq!(output, b"Hello, World!\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn ignore_whitespace() {
|
fn ignore_whitespace() {
|
||||||
let decoder = Decoder::new(" SG\tVsbG8sIFdvcmxkIQ==".as_bytes(), vec![], None, true);
|
let decoder = Decoder::new(" SG\tVsbG8sIFdvcmxkIQ==".as_bytes(), vec![], None, true);
|
||||||
let output = decoder.decode().unwrap();
|
assert_eq!(decoder.decode().unwrap(), b"Hello, World!");
|
||||||
assert_eq!(output, b"Hello, World!");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn decode_wrapped() {
|
fn decode_wrapped() {
|
||||||
let infile = File::open("src/testdata/lorem_b64.txt").unwrap();
|
let infile = File::open("testdata/lorem_b64.txt").unwrap();
|
||||||
let reader = BufReader::new(infile);
|
let reader = BufReader::new(infile);
|
||||||
let mut outfile = vec![];
|
let mut outfile = vec![];
|
||||||
File::open("src/testdata/lorem.txt")
|
File::open("testdata/lorem.txt")
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.read_to_end(&mut outfile)
|
.read_to_end(&mut outfile)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
@ -4,6 +4,20 @@ use {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/// Encodes arbitraty data as b64 encoded ASCII text
|
/// Encodes arbitraty data as b64 encoded ASCII text
|
||||||
|
/// # Example
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// # use {
|
||||||
|
/// # std::io::Read,
|
||||||
|
/// # b64::Encoder,
|
||||||
|
/// # };
|
||||||
|
/// #
|
||||||
|
/// # fn main() {
|
||||||
|
/// let mut encoder = Encoder::new("Hello, World!".as_bytes(), vec![], None, Some(76));
|
||||||
|
/// encoder.encode().unwrap();
|
||||||
|
/// assert_eq!(encoder.output(), b"SGVsbG8sIFdvcmxkIQ==");
|
||||||
|
/// # }
|
||||||
|
/// ```
|
||||||
pub struct Encoder<R: Read, W: Write> {
|
pub struct Encoder<R: Read, W: Write> {
|
||||||
reader: R,
|
reader: R,
|
||||||
writer: W,
|
writer: W,
|
||||||
@ -82,6 +96,7 @@ impl<R: Read, W: Write> Encoder<R, W> {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
self.writer.flush()?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -114,9 +129,9 @@ mod tests {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn wrapping() {
|
fn wrapping() {
|
||||||
let infile = File::open("src/testdata/lorem.txt").unwrap();
|
let infile = File::open("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("testdata/lorem_b64.txt").unwrap();
|
||||||
let mut encoder = Encoder::new(reader, vec![], None, Some(76));
|
let mut encoder = Encoder::new(reader, vec![], None, Some(76));
|
||||||
encoder.encode().unwrap();
|
encoder.encode().unwrap();
|
||||||
assert_eq!(encoder.writer, outfile.as_bytes());
|
assert_eq!(encoder.writer, outfile.as_bytes());
|
||||||
|
Loading…
Reference in New Issue
Block a user