#codec #hex #decode #encode #no-std

no-std base16

base16 (十六进制) 编码和解码

5个版本

0.2.1 2019年7月8日
0.2.0 2019年7月7日
0.1.2 2019年4月11日
0.1.1 2018年5月2日
0.1.0 2018年5月2日

编码类别中排名第1199

Download history 17102/week @ 2024-03-14 16773/week @ 2024-03-21 14683/week @ 2024-03-28 16406/week @ 2024-04-04 15681/week @ 2024-04-11 19917/week @ 2024-04-18 17700/week @ 2024-04-25 17078/week @ 2024-05-02 15362/week @ 2024-05-09 16720/week @ 2024-05-16 16123/week @ 2024-05-23 17693/week @ 2024-05-30 18471/week @ 2024-06-06 18507/week @ 2024-06-13 26302/week @ 2024-06-20 15903/week @ 2024-06-27

每月下载量81,828
139crate(直接使用50个)中使用

CC0协议

28KB
300

base16 (十六进制) 编码用于Rust。

Docs CircleCI codecov

这是一个以性能为重点编写的base16(例如十六进制)编码和解码库。

在Rust添加SIMD之前,我没有添加它。这可能是最快的非SIMD实现。

用法

base16 = "0.2"添加到Cargo.toml中,然后

fn main() {
    let original_msg = "Foobar";
    let hex_string = base16::encode_lower(original_msg);
    assert_eq!(hex_string, "466f6f626172");
    let decoded = base16::decode(&hex_string).unwrap();
    assert_eq!(String::from_utf8(decoded).unwrap(), original_msg);
}

更多用法示例请参阅文档

no_std用法

此crate支持使用以下旋钮在no_std配置中使用。

  • 默认开启的"alloc"功能,添加了一些需要使用alloc crate但不需要其余std的辅助函数。这是no_std兼容的。
    • 每个函数都记录了是否需要使用alloc功能。
  • 默认开启的"std"功能启用了"alloc"功能,并使base16::DecodeError实现了std::error::Error特性。(遗憾的是,此特性在std中,而不是在corealloc中...)

为了清晰起见,这意味着默认情况下,我们假设您同意使用std

如果您想禁用std的使用,但处于一个有分配器的环境(例如,可以使用alloc crate),则需要以下作为仅使用alloc的方式

[dependencies]
# Turn of use of `std` (but leave use of `alloc`).
base16 = { version = "0.2", default-features = false, features = ["alloc"] }

如果您只想使用核心的base16功能,而不使用任何辅助工具,则应关闭所有功能。

[dependencies]
# Turn of use of `std` and `alloc`.
base16 = { version = "0.2", default-features = false }

这两种配置都是no_std兼容的。

许可证

公有领域,如解释此处

无运行时依赖