
For decoding/encoding base 64 strings at compile-time.
Examples
Encoding
use const_base::{encode, encode_as_str, Config};
{
const OUTA: &[u8; 4] = encode!("foo", Config::B64);
const OUTB: &[u8; 4] = encode!(b"foo", Config::B64);
assert_eq!(OUTA, b"Zm9v");
assert_eq!(OUTB, b"Zm9v");
}
{
const BYTES: &[u8] = b"hello";
const OUT: &str = encode_as_str!(BYTES, Config::B64_URL_SAFE);
assert_eq!(OUT, "aGVsbG8=");
}
Decoding
use const_base::{decode, Config};
{
const OUT: &[u8] = decode!("Zm9v", Config::B64);
assert_eq!(OUT, b"foo");
}
{
const BYTES: &str = "aGVsbG8";
const OUT: &[u8] = decode!(BYTES, Config::B64_URL_SAFE.end_padding(false));
assert_eq!(OUT, b"hello");
}
No-std support
const_base is #![no_std], it can be used anywhere Rust can be used.
Minimum Supported Rust Version
const_base requires Rust 1.51.0, because it uses const generics.