Skip to main content

Module stream

Module stream 

Source
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.
DecoderReader
A streaming Base64 decoder for std::io::Read.
Encoder
A streaming Base64 encoder for std::io::Write.
EncoderReader
A streaming Base64 encoder for std::io::Read.