smol-base-x

Crates.iosmol-base-x
lib.rssmol-base-x
version0.1.0
sourcesrc
created_at2022-07-04 03:29:44.9793
updated_at2022-07-04 03:29:44.9793
descriptionno-std centric implementation of base-x
homepage
repositoryhttps://github.com/mriise/smol-base-x
max_upload_size
id618694
size57,101
Melanie Riise (mriise)

documentation

README

A no_std centric implementation of base-x

This requires a nightly compiler to use the array API.

Features used under the 'unstable' flag:

  • const_fn_floating_point_arithmetic
  • generic_const_exprs

Implementing a new Alphabet is rather simple:

use smol_base_x::*;
pub struct Base58 {}

impl Base<58> for Base58 {
    const ALPHABET: [u8; 58] = *b"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
}

Implementing Base will automatically generate a 256 byte LUT, which was chosen over a match statement based off of benchmarks in benches/lut_vs_matches

this lib provides a macro under unstable for generating a match statement equivalent to a LUT, but is mostly useful for when dealing with non-ascii alphabets (which are currently unmaintained).

Commit count: 25

cargo fmt