Expand description
Streaming Base64 wrappers for std::io.
Decoder adapters fail closed after malformed Base64 input. Use
is_failed() for diagnostics; unchecked into_inner() remains
available when the wrapped reader or writer must be explicitly
recovered after a decode error.
use std::io::{Read, Write};
use base64_ng::{STANDARD, stream::{Decoder, DecoderReader, Encoder, EncoderReader}};
let mut encoder = Encoder::new(Vec::new(), STANDARD);
encoder.write_all(b"he").unwrap();
encoder.write_all(b"llo").unwrap();
let encoded = encoder.finish().unwrap();
assert_eq!(encoded, b"aGVsbG8=");
let mut reader = EncoderReader::new(&b"hello"[..], STANDARD);
let mut encoded = String::new();
reader.read_to_string(&mut encoded).unwrap();
assert_eq!(encoded, "aGVsbG8=");
let mut decoder = Decoder::new(Vec::new(), STANDARD);
decoder.write_all(b"aGVs").unwrap();
decoder.write_all(b"bG8=").unwrap();
let decoded = decoder.finish().unwrap();
assert_eq!(decoded, b"hello");
let mut reader = DecoderReader::new(&b"aGVsbG8="[..], STANDARD);
let mut decoded = Vec::new();
reader.read_to_end(&mut decoded).unwrap();
assert_eq!(decoded, b"hello");Structsยง
- Decoder
- A streaming Base64 decoder for
std::io::Write. - Decoder
Reader - A streaming Base64 decoder for
std::io::Read. - Encoder
- A streaming Base64 encoder for
std::io::Write. - Encoder
Reader - A streaming Base64 encoder for
std::io::Read.