2 releases
0.1.1 | Jul 14, 2022 |
---|---|
0.1.0 | Jul 4, 2022 |
#18 in #slow
Used in 2 crates
4KB
83 lines
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).
Dependencies
~1.5MB
~36K SLoC