base32h 0.2.0

Base32H for rust
Documentation
use base32h::{decode_string, decode_string_to_binary, encode_binary_to_string, encode_to_string};
use criterion::{black_box, criterion_group, criterion_main, Criterion};

fn encode(input: u64) -> String {
    encode_to_string(input).unwrap()
}

fn encode_bin(input: &[u8]) -> String {
    encode_binary_to_string(input)
}

fn decode(input: &str) -> Option<u64> {
    decode_string(input)
}

fn decode_bin(input: &str) -> Vec<u8> {
    decode_string_to_binary(input)
}

fn criterion_benchmark(c: &mut Criterion) {
    c.bench_function("Encode digit", |b| b.iter(|| encode(black_box(4294967295))));
    c.bench_function("decode digit", |b| b.iter(|| decode(black_box("3zZzZzZ"))));

    c.bench_function("encode binary", |b| {
        b.iter(|| {
            encode_bin(black_box(&[
                255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
            ]))
        })
    });
    c.bench_function("decode binary", |b| {
        b.iter(|| decode_bin(black_box("zZzZzZzZzZzZzZzZ")))
    });
}

criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);