This crate provides a simplistic parser that converts
the PlayOnBSD Database
(either provided as a string or as a file) into a vector of Game
objects.
A new parser can be create using the Parser::new
method and providing
a ParsingMode
enum as only argument.
The parsing supports two modes represented by the two variants of the
ParsingMode
enum:
* strict mode (ParsingMode::Strict
) in which the parsing
will stop if a parsing error occurs returning the games processed
before the error as well as the line in the input (file or string)
where the error occured;
* relaxed mode (ParsingMode::Relaxed
) where the parsing
will continue even after an error is encountered, the parsing
resuming when reaching the next game after the parsing error
it returns all the games that have been parsed as well as
the lines that were ignored due to parsing errors.
The database can be provided as a string using the Parser::load_from_string
method
or as a file using the Parser::load_from_file
method.
The returned value depend on the method used to parse the PlayOnBSD database.
The Parser::load_from_string
method returns an ParserResult
enum. It has to variants:
* ParserResult::WithoutError
holding a vector of Game
object;
* ParserResult::WithError
holding a vector of Game
objects as well as
a vector of [usize
] where each element is the number of a line ignored during parsing
due to parsing errors.
The Parser::load_from_file
method returns Result<ParserResult, std::io::Error>
.