#base64 #hex #decoding #codec #base-16 #constant-evaluation

无std const-decoder

将十六进制和base64编码的字符串转换为字节的常量函数

3个版本 (破坏性更新)

0.3.0 2022年11月1日
0.2.0 2021年10月10日
0.1.0 2021年4月16日

#1694编码

Download history 1265/week @ 2024-04-21 932/week @ 2024-04-28 1282/week @ 2024-05-05 1473/week @ 2024-05-12 1485/week @ 2024-05-19 1359/week @ 2024-05-26 1631/week @ 2024-06-02 1192/week @ 2024-06-09 1245/week @ 2024-06-16 1342/week @ 2024-06-23 1478/week @ 2024-06-30 1787/week @ 2024-07-07 952/week @ 2024-07-14 1593/week @ 2024-07-21 1839/week @ 2024-07-28 1494/week @ 2024-08-04

5,952 每月下载次数
8 个crate中(7个直接使用)

MIT/Apache

25KB
395

十六进制/Base64解码常量函数

Build Status License: MIT OR Apache-2.0 rust 1.57+ required

文档: Docs.rs crate文档(master)

将十六进制和base64编码的字符串转换为字节的常量函数。在稳定版Rust和no-std环境中运行。支持自定义字母表的基础-(2,4,8,16,32,64)编码。

使用方法

将以下内容添加到您的 Crate.toml

[dependencies]
const-decoder = "0.3.0"

使用示例

use const_decoder::Decoder;
// An Ed25519 secret key.
const SECRET_KEY: [u8; 64] = Decoder::Hex.decode(
    b"9e55d1e1aa1f455b8baad9fdf975503655f8b359d542fa7e4ce84106d625b352\
      06fac1f22240cffd637ead6647188429fafda9c9cb7eae43386ac17f61115075",
);

Bech32 编码

use const_decoder::{Decoder, Encoding};
const BECH32: Decoder = Decoder::custom("qpzry9x8gf2tvdw0s3jn54khce6mua7l");
// Sample address from the Bech32 spec excluding the `tb1q` prefix
// and the checksum suffix.
const SAMPLE_ADDR: [u8; 32] =
    BECH32.decode(b"rp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q");

更多示例请参阅crate文档。

替代方案

hex-literalbinary_macros crate公开了类似的功能,作为过程宏。因此,在no-std环境中无法使用宏,而这种方法可以。

许可协议

根据您的选择,在Apache License, Version 2.0MIT license下许可。

除非您明确表示,否则您提交给 const-decoder 的任何贡献,根据Apache-2.0许可协议定义,应如上所述双许可,无需任何附加条款或条件。

无运行时依赖项