3 个稳定版本
1.1.1 | 2023年9月29日 |
---|---|
1.0.0 | 2023年5月26日 |
#1884 在 Rust 模式
每月下载量 184
在 4 个包中使用(通过 include_assets_decode)
40KB
853 行
hexhex 🪄 十六进制转换
特性
- 以无(堆)分配显示字节为十六进制
- 将字节转换为
String
- 将十六进制
&str
或&[u8]
转换为新字节向量 - 将十六进制
&str
或&[u8]
转换为预分配缓冲区的字节 - 宏,用于所有编译时十六进制到字节的转换需求
#![no_std]
支持上述功能的一个子集(如果使用无默认功能)- 无运行时恐慌(除非是内部错误)
编码
use hexhex::Hex;
let bytes = [0xc0, 0xff, 0xee];
println!("{}", Hex::new(&bytes)); // no allocations, prints "c0ffee"
use hexhex::{Hex, Case};
let bytes = [0xc0, 0xff, 0xee];
println!("{}", Hex::new(&bytes).with_prefix(true).with_case(Case::Upper)); // no allocations, prints "0xC0FFEE"
编码到 String
Hex
实现了 Display
特性,因此转换为字符串就像
use hexhex::Hex;
let bytes = [0xc0, 0xff, 0xee];
let hex = Hex::new(&bytes).to_string();
assert_eq!(hex, "c0ffee");
解码
只有使用 std
才会分配
use hexhex::decode;
assert_eq!(&decode("c0ffee").unwrap(), &[0xc0, 0xff, 0xee]);
宏
use hexhex::hex_literal;
let bytes: &[u8; 3] = hex_literal!("0xc0ffee");
assert_eq!(bytes, &[0xc0, 0xff, 0xee]);
许可
在 EUPL-1.2 或更高版本下许可
贡献
错误报告 非常受欢迎。随时请求功能,但无任何承诺。目前无意接受第三方补丁。
依赖项
~87KB