3 个版本 (稳定)
使用旧的 Rust 2015
1.0.1 | 2016 年 10 月 1 日 |
---|---|
1.0.0 | 2016 年 9 月 4 日 |
0.1.0 | 2016 年 9 月 4 日 |
#1683 在 文本处理
每月 216 次下载
在 2 包 中使用
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);