#byte #utf-8 #decode #data #hex #representation #vector

hex_d_hex

HexDHex 是一个 Rust 包,可以将字节数据编码和解码为其十六进制表示形式。例如,有时可能需要将 UTF-8 或 ASCII 字符串 "0F12FF00A7" 转换为 u8s 向量 [15,18,255,0,167] 或相反。

3 个版本 (稳定)

使用旧的 Rust 2015

1.0.1 2016 年 10 月 1 日
1.0.0 2016 年 9 月 4 日
0.1.0 2016 年 9 月 4 日

#1683文本处理

Download history 68/week @ 2024-03-11 48/week @ 2024-03-18 34/week @ 2024-03-25 98/week @ 2024-04-01 36/week @ 2024-04-08 64/week @ 2024-04-15 71/week @ 2024-04-22 51/week @ 2024-04-29 65/week @ 2024-05-06 30/week @ 2024-05-13 27/week @ 2024-05-20 72/week @ 2024-05-27 71/week @ 2024-06-03 76/week @ 2024-06-10 31/week @ 2024-06-17 32/week @ 2024-06-24

每月 216 次下载
2 包 中使用

MIT 许可证

11KB
133

HexDHex

用途

HexDHex 是一个 Rust 包,可以将字节数据编码和解码为其十六进制表示形式。例如,有时可能需要将 UTF-8 或 ASCII 字符串 "0F12FF00A7" 转换为 u8s 向量 [15,18,255,0,167] 或相反。

命名空间

HexDHex 将所有功能放在包的最顶层。只有一个公共函数,并且都在 hex_d_hex 命名空间下。

let hex_string = *hex_d_hex::capital_hex(&hex_vals);

编码

从本包的角度来看,编码是将原始字节数据向量或 u8s 向量转换为 ASCII 或 UTF-8 兼容字符串的过程。有两种方法,一种是大写字母编码,另一种是小写字母编码。我们将这些方法分开,而不是使用布尔参数,以提高性能。为什么让 ALU 点击两次,而一次就可以点击?这两种方法都返回一个 box 字符串,我们希望在堆上创建它,以避免不必要的复制。这具有性能优势,并且只有声明时的小型解引用。请参阅以下示例。

大写编码

let hex_vals: Vec<u8> = vec![15,18,255,0,167];
let hex_string = *hex_d_hex::capital_hex(&hex_vals);
assert_eq!(hex_string, "0F12FF00A7");

小写编码

let hex_vals: Vec<u8> = vec![15,18,255,0,167];
let hex_string = *hex_d_hex::lower_hex(&hex_vals);
assert_eq!(hex_string, "0f12ff00a7");

解码

从本包的角度来看,解码是将十六进制字节字符串转换为 u8s 向量的过程。它将消耗大小写字母。请参阅以下示例。

通用解码

let hex_string = "0F12FF00a7";
let hex_vals = *hex_d_hex::dhex(hex_string);
assert_eq!(hex_vals[0], 15);
assert_eq!(hex_vals[1], 18);
assert_eq!(hex_vals[2], 255);
assert_eq!(hex_vals[3], 0);
// Should allow mix of capital and lower case letters
assert_eq!(hex_vals[4], 167);

无运行时依赖项