reaclib

Crates.ioreaclib
lib.rsreaclib
version0.1.3
sourcesrc
created_at2022-10-21 06:44:17.497077
updated_at2022-11-14 04:29:35.776538
descriptionA parsing library for the reaclib format
homepage
repositoryhttps://github.com/j-browne/reaclib-rs
max_upload_size
id693225
size71,849
Justin Browne (j-browne)

documentation

https://docs.rs/reaclib

README

reaclib-rs

A parsing library for the reaclib data format.

The data is represented by Set, and the parsing is mostly done by Iter. The data can be collected into a type that implements FromIterator, such as Vec. A convenience function to_hash_map is provided for the case that you want a Vec of all Sets for each reaction.

Format

The format is documented on the reaclib format help page. There are two formats, both supported by this library. Format is used to indicate which version to expect.

Examples

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)?;

Features

  • serde: Provide Serialize and Deserialize implementations for serde.
  • arbitrary: Provide Arbitrary implementations for arbitrary, useful for fuzzing.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 31

cargo fmt