7个不稳定版本 (3个重大变更)
0.4.1 | 2023年3月29日 |
---|---|
0.4.0 | 2023年3月27日 |
0.3.1 | 2023年3月27日 |
0.2.0 | 2023年3月15日 |
0.1.1 | 2023年3月6日 |
在数据库接口类别中排名第1330
被 4 个 Crate使用
49KB
1K SLoC
pobsd-parser
pobsd-parser是一个用于解析PlayOnBSD数据库的解析库。
此库提供
Parser
结构体,用于处理解析ParsingMode
枚举,用于在严格或宽松解析模式之间进行选择ParserResult
结构体,用于处理带错误和不带错误的解析Game
结构体,表示数据库中的一个游戏
示例
以下是一个加载文件的第一个示例(默认为宽松模式)。
extern crate pobsd_parser;
use pobsd_parser::{Parser, ParserResult};
// Create a parser
let parser = Parser::default();
// Load the database
let parser_result = parser.load_from_file("/path/to/games.db")
.expect("Problem trying to open the file");
let games = match parser_result {
ParserResult::WithoutError(games) => games,
ParserResult::WithError(games, _) => games,
};
解析器还可以使用严格模式,在遇到解析错误时停止,并返回已处理的游戏。
extern crate pobsd_parser;
use pobsd_parser::{Parser, ParserResult, ParsingMode};
// Create a paser in strict mode
let parser = Parser::new(ParsingMode::Strict);
// Load the database
let parser_result = parser.load_from_file("/path/to/games.db")
.expect("Problem trying to open the file");
let games = match parser_result {
ParserResult::WithoutError(games) => games,
ParserResult::WithError(games, _) => games,
};
解析器还可以从 &str 或 String 加载。
extern crate pobsd_parser;
use pobsd_parser::{Parser, ParserResult, ParsingMode};
let games = r#"Game AaaaaAAaaaAAAaaAAAAaAAAAA!!! for the Awesome
Cover AaaaaA_for_the_Awesome_Cover.jpg
Engine
Setup
Runtime HumblePlay
Store https://www.humblebundle.com/store/aaaaaaaaaaaaaaaaaaaaaaaaa-for-the-awesome
Hints Demo on HumbleBundle store page
Genre
Tags
Year 2011
Dev
Pub
Version
Status
Added 1970-01-01
Updated 1970-01-01
IgdbId 12
Game The Adventures of Mr. Hat
Cover
Engine godot
Setup
Runtime godot
Store https://store.steampowered.com/app/1869200/The_Adventures_of_Mr_Hat/
Hints
Genre Puzzle Platformer
Tags indie
Year
Dev AX-GAME
Pub Fun Quarter
Version Early Access
Status runs (2022-05-13)
Added 2022-05-13
Updated 2022-05-13
IgdbId 13"#;
let parser = Parser::default();
let games = match parser.load_from_string(games) {
ParserResult::WithoutError(games) => games,
// Should not panic since the data are fine
ParserResult::WithError(_, _) => panic!(),
};
依赖关系
~2.8–4.5MB
~87K SLoC