Crate const_base[−][src]
Expand description
For decoding/encoding base 64/32/16 strings at compile-time.
Examples
Encoding
use const_base::{encode, encode_as_str, Config}; { // the encoding macros can take both `&str` and `&[u8]` constants. 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"; // the encoding macros can encode non-literal constants 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!("MZXW6===", Config::B32); assert_eq!(OUT, b"foo"); } { const BYTES: &[u8] = b"f000"; // this macro can decode non-literal constants const OUT: &[u8] = decode!(BYTES, Config::HEX); assert_eq!(OUT, &[0xF0, 0x00]); }
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.
Re-exports
pub use crate::errors::DecodeError;
pub use crate::errors::InvalidByte;
pub use crate::errors::InvalidInputLength;
pub use crate::errors::MismatchedOutputLength;
Modules
Macros
Decodes the $slice
constant into a &[u8; N]
with the encoding determined by $config
.
Encodes the $slice
constant into a &[u8; N]
with the encoding determined by $config
.
Encodes the $slice
constant into a &str
with the encoding determined by $config
.
A const equivalent of Result::unwrap_or
, where $else
is only evaluated on error.
Structs
For configuring how a string is encoded/decoded.
Enums
Determines which characters are used for the Base32 encoding
Determines which characters are used for the Base64 encoding
Determines which encoding is used.
Determines which characters are used for the Hexadecimal encoding
Functions
Decodes input
into a [u8; OUT]
with the encoding determined by config
.
Computes the length of the string obtained from decoding encoded
with the encoding determined by config
.
Encodes input
into a [u8; OUT]
with the encoding determined by config
.
Computes the length of the encoded string from the unencoded_length
,
using the encoding determined by config
.