#hex-dump #byte-slice #pretty #style #haskell #pretty-hex

nu-pretty-hex

以常见样式展示字节切片的格式化十六进制转储

66 个版本 (重大更新)

新版本 0.97.1 2024年8月21日
0.96.1 2024年7月29日
0.91.0 2024年3月5日
0.88.1 2023年12月14日
0.34.0 2021年7月13日

值格式化 中排名 #65

Download history 1276/week @ 2024-05-03 860/week @ 2024-05-10 978/week @ 2024-05-17 1535/week @ 2024-05-24 2257/week @ 2024-05-31 1182/week @ 2024-06-07 936/week @ 2024-06-14 1554/week @ 2024-06-21 1179/week @ 2024-06-28 1179/week @ 2024-07-05 880/week @ 2024-07-12 1428/week @ 2024-07-19 1740/week @ 2024-07-26 1057/week @ 2024-08-02 1044/week @ 2024-08-09 1338/week @ 2024-08-16

每月下载量 5,499
用于 17 个包(其中6个直接使用)

MIT 许可协议

16KB
259

nu-pretty-hex

prett-hex 的更新,使其更美观

crates.io docs.rs

一个提供美观十六进制转储的 Rust 库。

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

灵感来源

Hexed
Hexyl
Pretty-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's pretty-hex 的启发。

依赖项

~0.1–6.5MB
~34K SLoC