#hex-dump #hex #dump #byte-slice #binary #logging #no-alloc

no-std bin+lib hex_pp

以通用样式美化字节切片的十六进制转储

2 个版本

0.1.2 2023 年 8 月 17 日
0.1.1 2023 年 8 月 17 日
0.1.0 2023 年 8 月 17 日

#443调试


ots-client 使用

MIT 许可证

10KB
170

Hex 美化打印机

提供美化十六进制打印功能的库。

  • 使用 simple_hex() 方式渲染单行十六进制转储。
  • 使用 pretty_hex() 方式渲染带有地址和 ASCII 表示的列式多行十六进制转储。
  • 使用 config_hex() 方式以指定格式渲染十六进制转储。

simple_hex() 的示例

输入

use hex_pp::*;

let v = vec![222, 173, 190, 239, 202, 254, 32, 24];
assert_eq!(simple_hex(&v), format!("{}", v.hex_dump()));

println!("{}", v.hex_dump());

输出

de ad be ef  ca fe 20 18

pretty_hex() 的示例

输入

use hex_pp::*;

let v: &[u8] = &random::<[u8;30]>();
assert_eq!(pretty_hex(&v), format!("{:?}", v.hex_dump()));

println!("{:?}", v.hex_dump());

输出

Length: 30 (0x1e) bytes
0000:   6b 4e 1a c3  af 03 d2 1e  7e 73 ba c8  bd 84 0f 83   kN......~s......
0010:   89 d5 cf 90  23 67 4b 48  db b1 bc 35  bf ee         ....#gKH...5..

config_hex() 的示例

输入

use hex_pp::*;

let cfg = HexConfig {title: false, width: 8, group: 0, ..HexConfig::default() };

let v = &include_bytes!("data");
assert_eq!(config_hex(&v, cfg), format!("{:?}", v.hex_conf(cfg)));

println!("{:?}", v.hex_conf(cfg));

输出

0000:   6b 4e 1a c3 af 03 d2 1e   kN......
0008:   7e 73 ba c8 bd 84 0f 83   ~s......
0010:   89 d5 cf 90 23 67 4b 48   ....#gKH
0018:   db b1 bc 35 bf ee         ...5..

haskell 的美化十六进制 启发。

无运行时依赖