3 个稳定版本

1.1.1 2023年9月29日
1.0.0 2023年5月26日

#1884Rust 模式

Download history 75/week @ 2024-03-11 62/week @ 2024-03-18 71/week @ 2024-03-25 81/week @ 2024-04-01 55/week @ 2024-04-08 33/week @ 2024-04-15 48/week @ 2024-04-22 43/week @ 2024-04-29 59/week @ 2024-05-06 48/week @ 2024-05-13 30/week @ 2024-05-20 33/week @ 2024-05-27 13/week @ 2024-06-03 36/week @ 2024-06-10 50/week @ 2024-06-17 84/week @ 2024-06-24

每月下载量 184
4 个包中使用(通过 include_assets_decode

EUPL-1.2

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