5 个版本

0.1.3 2022年11月14日
0.1.2 2022年11月14日
0.1.1 2022年10月26日
0.1.0 2022年10月21日

#1280 in 解析器实现

MIT/Apache

39KB
705

reaclib-rs

reaclib 数据格式的解析库。

数据由 Set 表示,解析主要使用 Iter 完成。数据可以收集到实现 FromIterator 的类型中,如 Vec。提供方便的函数 to_hash_map 用于将每个反应的所有 Set 收集到一个 Vec 中。

格式

该格式在 reaclib 格式帮助页面 上进行了文档说明。有两种格式,均由本库支持。使用 Format 来指示期望的版本。

示例

use reaclib::{Format, Iter, Set};
use std::{fs::File, io::BufReader};

let file = File::open("reaclib")?;
let file = BufReader::new(file);
let iter = Iter::new(file, Format::Reaclib1);
let data: Vec<Set> = iter.collect::<Result<_, _>>()?;
use reaclib::{Format, Reaction, Set, to_hash_map};
use std::{collections::HashMap, io::stdin};

let input = stdin().lock();
let data: HashMap<Reaction, Vec<Set>> = to_hash_map(input, Format::Reaclib2)?;

功能

  • serde: 为 serde 提供 SerializeDeserialize 实现。
  • arbitrary: 为 arbitrary 提供 Arbitrary 实现,这对于模糊测试很有用。

许可证

根据您的选择,许可协议为

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交以包含在作品中的任何贡献,均应双许可,如上所述,无需任何额外的条款或条件。

依赖项

~0.4–1MB
~21K SLoC