2个不稳定版本
| 0.2.0 | 2023年11月5日 | 
|---|---|
| 0.1.0 | 2021年8月8日 | 
在文本处理中排名913
每月下载量2,880
在29个 crates 中使用(直接使用6个)
34KB
525 行
keyvalues-parser
keyvalues-parser使用pest来解析VDF文本v1文件到无类型的Rust结构,以简化操作和导航。解析器提供了一个无类型的Vdf表示,以及一个线性的TokenStream
该库主要用于与keyvalues-serde结合使用,它提供了一个更方便(但更受限)的方式来处理VDF文本。
安装
只需将库添加到您的Cargo.toml
[dependencies]
keyvalues-parser = "0.1.0"
快速入门
const LOGIN_USERS_VDF: &str = r#"
"users"
{
    "12345678901234567"
    {
        "AccountName"        "ACCOUNT_NAME"
        "PersonaName"        "PERSONA_NAME"
        "RememberPassword"    "1"
        "MostRecent"        "1"
        "Timestamp"        "1234567890"
    }
}
"#;
use keyvalues_parser::Vdf;
fn main() -> Result<(), Box<dyn std::error::Error>> {
    let vdf = Vdf::parse(LOGIN_USERS_VDF)?;
    assert_eq!(
        "12345678901234567",
	vdf.value.unwrap_obj().keys().next().unwrap(),
    );
    Ok(())
}
限制
VDF文本定义得非常不完整。这导致以下自由度被采用
- 不尊重键值对顺序,键值对存储在一个根据键对值进行排序的BTreeMap中
- 由于表示序列的限制,空的Vec值将表示为缺失的键值对
基准测试
一些基本的基准测试可以在benches目录中找到
这些基准测试只是测试了解析和渲染相当典型的VDF文件的时序和吞吐量
许可证
以下任一许可证下授权:
- Apache许可证第2版,(LICENSE-APACHE或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT或https://open-source.org.cn/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您根据Apache-2.0许可证定义的,有意提交以包含在作品中的任何贡献,应以上述方式双授权,无需额外条款或条件。
依赖项
~2.1–2.8MB
~57K SLoC