4个版本
0.1.3 | 2022年11月27日 |
---|---|
0.1.2 | 2016年1月17日 |
0.1.1 | 2016年1月17日 |
0.1.0 | 2016年1月16日 |
#86 在 解析工具
26,536 每月下载量
用于 49 个crate(直接使用5个)
13KB
228 行
Zero
一个用于二进制数据零分配解析的Rust库。
需要Rust版本1.6或更高版本(需要稳定版libcore以支持no_std)。
更多信息请见 文档。
在 crates.io 上可用。
构建
cargo build
测试
cargo test
要在您的项目中使用,请在 Cargo.toml
中添加
[dependencies]
zero = "0.1.2"
lib.rs
:
用于将二进制数据读取到Rust数据结构中的函数。所有函数都是零分配。
有用于读取单个值、值数组、单个以null终止的UTF-8字符串(这也应该适用于ASCII字符串),以及以另一个null字节终止的null终止字符串数组的函数。
函数保留了底层数据的生命周期。这些函数是内存安全的,尽管这在一定程度上基于假设客户端只实现了在安全的情况下实现的unsafe trait Pod
。
函数断言提供的数据足够大且对齐。字符串函数检查字符串是否为有效的UTF-8。没有检查提供的输入是否会生成有效的对象(例如,枚举具有有效的区分符)。用户必须通过实现trait Pod
来断言这一点。
还有大多数函数的不安全版本,这些版本不需要返回类型实现 Pod
,并且不进行任何检查。