Function const_base::encode[][src]

pub const fn encode<const OUT: usize>(
    input: &[u8],
    config: Config
) -> Result<[u8; OUT], MismatchedOutputLength>
Expand description

Encodes input into a [u8; OUT] with the encoding determined by config.

Errors

This function returns a MismatchedOutputLength error when OUT doesn’t equal encoded_len(input.len(), config).

Example

Base 64

use const_base::{Config, encode, unwrap_or, utils::repeated};

{
    const ENCODED: [u8; 16] = unwrap_or!(encode(b"hello worl", Config::B64), repeated(0xFF));

    assert_eq!(ENCODED, *b"aGVsbG8gd29ybA==");
}
{
    const CFG: Config = Config::B64.end_padding(false);
    const ENCODED: [u8; 4] = unwrap_or!(encode(b"BYE", CFG), repeated(0xFF));

    assert_eq!(ENCODED, *b"QllF");
}

Base 32

use const_base::{Config, encode, unwrap_or, utils::repeated};

{
    const ENCODED: [u8; 8] = unwrap_or!(encode(b"fox", Config::B32), repeated(0xFF));

    assert_eq!(ENCODED, *b"MZXXQ===");
}
{
    const CFG: Config = Config::B32.end_padding(false);
    const ENCODED: [u8; 5] = unwrap_or!(encode(b"dog", CFG), repeated(0xFF));

    assert_eq!(ENCODED, *b"MRXWO");
}

Hexadecimal

use const_base::{Config, encode, unwrap_or, utils::repeated};

{
    const LOWER: [u8; 8] = unwrap_or!(encode(b"bluh", Config::HEX_LOWER), repeated(0xFF));
    const UPPER: [u8; 8] = unwrap_or!(encode(b"bluh", Config::HEX), repeated(0xFF));

    assert_eq!(LOWER, *b"626c7568");
    assert_eq!(UPPER, *b"626C7568");
}