15 个版本
0.1.15 | 2024年4月28日 |
---|---|
0.1.14 | 2023年11月21日 |
0.1.13 | 2023年5月20日 |
0.1.12 | 2021年5月27日 |
0.1.1 | 2017年11月18日 |
#441 in 编码
551,638 每月下载量
在 830 个 crate (19 直接)中使用
130KB
1.5K SLoC
此库提供了从编码字符串定义编译时字节切片和数组的宏(使用常见的基,如 base64、base32 或十六进制,也可以使用自定义基)。它还提供了一个宏来定义用于在运行时与 data-encoding crate 一起使用的编译时自定义编码。
有关详细信息,请参阅文档。
在 Rust 1.50 之前,您可能需要将以下内容添加到您的 .cargo/config.toml
中,才能在无需 std 或无需分配的环境中使用此库
[unstable]
features = ["host_dep"]
从 Rust 1.51 开始,您可能需要将以下内容添加到您的 Cargo.toml
[package]
resolver = "2"
lib.rs
:
数据编码宏
此库提供了从编码字符串定义编译时字节数组的宏(使用常见的基,如 base64、base32 或 十六进制,以及自定义基)。它还提供了一个宏来定义在运行时与 data-encoding crate 一起使用的编译时自定义编码。
在 Rust 1.50 之前,您可能需要将以下内容添加到您的 .cargo/config.toml
中,才能在无需 std 或无需分配的环境中使用此库
[unstable]
features = ["host_dep"]
从 Rust 1.51 开始,您可能需要将以下内容添加到您的 Cargo.toml
[package]
resolver = "2"
示例
您可以从编码的字符串字面量定义编译时的字节切片
const HELLO_SLICE: &'static [u8] = &data_encoding_macro::hexlower!("68656c6c6f");
const FOOBAR_SLICE: &'static [u8] = &data_encoding_macro::base64!("Zm9vYmFy");
您也可以从编码的字符串字面量定义编译时的字节数组
data_encoding_macro::hexlower_array!("const HELLO" = "68656c6c6f");
data_encoding_macro::base64_array!("const FOOBAR" = "Zm9vYmFy");
您可以从其规范定义编译时的自定义编码
const HEX: data_encoding::Encoding = data_encoding_macro::new_encoding! {
symbols: "0123456789abcdef",
translate_from: "ABCDEF",
translate_to: "abcdef",
};
const BASE64: data_encoding::Encoding = data_encoding_macro::new_encoding! {
symbols: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
padding: '=',
};
依赖关系
~1.5MB
~36K SLoC