#base #lookup-tables #no-std #base-x

smol-base-x

以 no_std 为中心的 base-x 实现

1 个不稳定版本

0.1.0 2022 年 7 月 4 日

#43 in #lookup-tables

MIT 许可证

33KB
591

以 no_std 为中心的 base-x 实现

这需要使用 nightly 编译器来使用数组 API。

在 'unstable' 标志下使用的特性

  • const_fn_floating_point_arithmetic
  • generic_const_exprs

实现新的字母表相对简单

use smol_base_x::*;
pub struct Base58 {}

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

实现 Base 将自动生成一个 256 字节的查找表(LUT),这是基于在 benches/lut_vs_matches 的基准测试中选择的结果,而不是基于匹配语句。

此库在 unstable 下提供了一个宏,用于生成与 LUT 等效的匹配语句,但主要用于处理非 ASCII 字母表(目前未维护)。

依赖项

~0–255KB