Function const_base::encode
source · pub const fn encode<const OUT: usize>(
input: &[u8],
config: Config
) -> Result<ArrayStr<OUT>, WrongOutputLength>
Expand description
Encodes input
into an ArrayStr<OUT>
with the encoding determined by config
.
Errors
This function returns a WrongOutputLength
error when
OUT
doesn’t equal encoded_len(input.len(), config)
.
Example
Base 64
use const_base::{ArrayStr, Config, WrongOutputLength, encode};
{
const ENCODED: &ArrayStr<16> =
&WrongOutputLength::unwrap(encode(b"hello worl", Config::B64));
assert_eq!(ENCODED, "aGVsbG8gd29ybA==");
}
{
const CFG: Config = Config::B64.end_padding(false);
const ENCODED: &ArrayStr<4> = &WrongOutputLength::unwrap(encode(b"BYE", CFG));
assert_eq!(ENCODED, "QllF");
}
Base 32
use const_base::{ArrayStr, Config, WrongOutputLength, encode};
{
const ENCODED: &ArrayStr<8> = &WrongOutputLength::unwrap(encode(b"fox", Config::B32));
assert_eq!(ENCODED, "MZXXQ===");
}
{
const CFG: Config = Config::B32.end_padding(false);
const ENCODED: &ArrayStr<5> = &WrongOutputLength::unwrap(encode(b"dog", CFG));
assert_eq!(ENCODED, "MRXWO");
}
Hexadecimal
use const_base::{ArrayStr, Config, WrongOutputLength, encode};
{
const LOWER: &ArrayStr<8> = &WrongOutputLength::unwrap(encode(b"bluh", Config::HEX_LOWER));
const UPPER: &ArrayStr<8> = &WrongOutputLength::unwrap(encode(b"bluh", Config::HEX));
assert_eq!(LOWER, "626c7568");
assert_eq!(UPPER, "626C7568");
}