base64

Function encode_config_slice

Source
pub fn encode_config_slice<T: ?Sized + AsRef<[u8]>>(
    input: &T,
    config: Config,
    output: &mut [u8],
) -> usize
Expand description

Encode arbitrary octets as base64. Writes into the supplied output buffer.

This is useful if you wish to avoid allocation entirely (e.g. encoding into a stack-resident or statically-allocated buffer).

§Panics

If output is too small to hold the encoded version of input, a panic will result.

§Example

extern crate base64;

fn main() {
    let s = b"hello internet!";
    let mut buf = Vec::new();
    // make sure we'll have a slice big enough for base64 + padding
    buf.resize(s.len() * 4 / 3 + 4, 0);

    let bytes_written = base64::encode_config_slice(s,
                            base64::STANDARD, &mut buf);

    // shorten our vec down to just what was written
    buf.resize(bytes_written, 0);

    assert_eq!(s, base64::decode(&buf).unwrap().as_slice());
}