#binary-data #byte-slice #logging #ascii #ascii-byte #no-std

no-std try-ascii

用于格式化可能/大部分包含ASCII编码文本的字节切片的辅助工具

2个稳定版本

1.1.0 2024年2月23日
1.0.0 2024年1月23日

#256调试

Download history 73/week @ 2024-03-11 41/week @ 2024-04-01 108/week @ 2024-04-15 8/week @ 2024-04-22 4/week @ 2024-05-06 8/week @ 2024-05-13 2/week @ 2024-05-20 13/week @ 2024-05-27 42/week @ 2024-06-03 64/week @ 2024-06-10 250/week @ 2024-06-17 130/week @ 2024-06-24

486 每月下载量
3 crates 中使用

OLFL-1.3

9KB
106

Try ASCII

用于格式化可能/大部分包含ASCII编码文本的字节切片的辅助工具

这可以用于记录预期为文本但无法保证是有效UTF-8的二进制数据。在这些情况下,使用 std::str::from_utf8 可能不可行,因为每当该函数失败时,都会记录一个 Utf8Error 而不是实际数据。使用 try_ascii,文本部分将被格式化为文本,而二进制部分将回退到 &[u8] 的默认 Debug 实现方式。

use try_ascii::try_ascii;
println!("{:x?}", try_ascii(b"Hello, \xa0\xa1\xa2\xa3"));

打印为

Hello, [a0, a1, a2, a3]

你可以使用提供的 try_ascii 函数,或者导入 TryToAscii trait,它会自动为 [u8]&[u8] 以及实现了 AsRef<[u8]> 的任何类型自动实现 try_ascii()

use try_ascii::TryAscii;

// You can use .try_ascii() directly on a [u8]-slice:
println!("{:x?}", b"Hello, \xa0\xa1\xa2\xa3".try_ascii());

// ... or on &[u8] :
let slice: &[u8] = b"Hello, \xa0\xa1\xa2\xa3";
println!("{:x?}", slice.try_ascii());

// ... or on things that implement AsRef<[u8]>:
let slice: [u8; 11] = *b"Hello, \xa0\xa1\xa2\xa3";
println!("{:x?}", slice.as_ref().try_ascii());

许可

开放物流基金会许可
版本 1.3,2023年1月

请参阅顶级目录中的 LICENSE 文件。

联系方式

弗劳恩霍费尔 IML 嵌入式 Rust 小组 - [email protected]

无运行时依赖