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

无需 std pretty-hex

以通用风格展示字节数组的漂亮十六进制转储

7个不稳定版本

使用旧的Rust 2015

0.4.1 2023年12月21日
0.4.0 2023年11月25日
0.3.0 2022年4月16日
0.2.1 2020年9月11日
0.1.0 2018年3月8日

调试中排名21

Download history 84064/week @ 2024-04-20 78653/week @ 2024-04-27 76206/week @ 2024-05-04 74116/week @ 2024-05-11 66739/week @ 2024-05-18 68942/week @ 2024-05-25 66099/week @ 2024-06-01 65714/week @ 2024-06-08 62313/week @ 2024-06-15 61714/week @ 2024-06-22 66292/week @ 2024-06-29 77664/week @ 2024-07-06 71729/week @ 2024-07-13 73072/week @ 2024-07-20 73353/week @ 2024-07-27 72614/week @ 2024-08-03

每月下载量302,789
283个crate中(70个直接)使用

MIT许可证

13KB
180

pretty-hex

crates.io docs.rs

一个提供漂亮十六进制转储的Rust库。

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

simple_hex()的示例

use pretty_hex::*;

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 pretty_hex::*;

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 pretty_hex::*;

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的pretty-hex

无运行时依赖