1 个不稳定版本
0.1.0 | 2023年9月6日 |
---|
#2173 在 编码
9KB
150 行
未经验证的字符串切片类型
在处理序列化数据(来自网络或磁盘)时,你通常需要处理字符串。你的规范可能表明这些字符串 应该 是UTF-8,或者你可能在处理不需要UTF-8的旧文件格式,但仍然期望找到UTF-8数据。
验证UTF-8字符串会有成本,包括CPU时间。验证还会增加新的错误模式;当遗留文件中包含非有效的UTF-8字符串时,你会怎么办?你可以完全解析失败文件,或者尽可能容忍错误。在某些情况下,你只是使用一个数据结构中的字符串来查找另一个数据结构中的匹配项,所以字符串是否总是有效的UTF-8并不重要。
此crate提供了RawStr
类型,它简单地包装了一个&[u8]
值。它提供了Debug
和Display
实现,如果可能,将显示字符串。
使用RawStr::from_bytes
来包装一个&[u8]
值。使用RawStr::as_bytes
来获取&[u8]
切片。
这并不是一个复杂或功能齐全的crate。它只是满足了一个特殊需求。
作者和致谢
我把自己(Arlie Davis ([email protected])))列为这个crate的“作者”,因为RawStr
是一个广泛适用的抽象。然而,我想承认与pdb
crate中的几乎相同的RawString
类型的影响。我为一些类似的工作编写了该类型的等效类型,这些工作远远超出了PDB文件的范围,因此我认为最好有一个独立的crate。