Function bs58::decode[][src]

pub fn decode<I: AsRef<[u8]>>(input: I) -> DecodeBuilder<'static, I>

Setup decoder for the given string using the default alphabet.

Examples

Basic example

assert_eq!(
    vec![0x04, 0x30, 0x5e, 0x2b, 0x24, 0x73, 0xf0, 0x58],
    bs58::decode("he11owor1d").into_vec().unwrap());

Changing the alphabet

assert_eq!(
    vec![0x60, 0x65, 0xe7, 0x9b, 0xba, 0x2f, 0x78],
    bs58::decode("he11owor1d")
        .with_alphabet(bs58::alphabet::RIPPLE)
        .into_vec().unwrap());

Decoding into an existing buffer

let mut output = [0xFF; 10];
assert_eq!(8, bs58::decode("he11owor1d").into(&mut output).unwrap());
assert_eq!(
    [0x04, 0x30, 0x5e, 0x2b, 0x24, 0x73, 0xf0, 0x58, 0xFF, 0xFF],
    output);

Errors

Invalid Character

assert_eq!(
    bs58::decode::DecodeError::InvalidCharacter { character: 'l', index: 2 },
    bs58::decode("hello world").into_vec().unwrap_err());

Non-ASCII Character

assert_eq!(
    bs58::decode::DecodeError::NonAsciiCharacter { index: 5 },
    bs58::decode("he11o🇳🇿").into_vec().unwrap_err());

Too Small Buffer

This error can only occur when reading into a provided buffer, when using .into_vec a vector large enough is guaranteed to be used.

let mut output = [0; 7];
assert_eq!(
    bs58::decode::DecodeError::BufferTooSmall,
    bs58::decode("he11owor1d").into(&mut output).unwrap_err());