mirror of
https://github.com/tribufu/rust-gamedig
synced 2026-06-01 09:42:41 +00:00
* crate: Set default binary to gamedig-cli * crate: Fix bad no-default-features option on gamedig-id dependency * ci: Run tests when Cargo.toml changes * id-tests: Clippy fixes
31 lines
797 B
Rust
31 lines
797 B
Rust
#![cfg(feature = "cli")]
|
|
|
|
use std::collections::HashMap;
|
|
|
|
/// Format for input games (the same as used in node-gamedig/lib/games.js).
|
|
type GamesInput = HashMap<String, Game>;
|
|
|
|
#[derive(Debug, Clone, PartialEq, serde::Deserialize)]
|
|
struct Game {
|
|
name: String,
|
|
}
|
|
|
|
use gamedig_id_tests::test_game_name_rules;
|
|
|
|
fn main() {
|
|
let games: GamesInput = if let Some(file) = std::env::args_os().nth(1) {
|
|
let file = std::fs::OpenOptions::new().read(true).open(file).unwrap();
|
|
|
|
serde_json::from_reader(file).unwrap()
|
|
} else {
|
|
serde_json::from_reader(std::io::stdin().lock()).unwrap()
|
|
};
|
|
|
|
let failed = test_game_name_rules(
|
|
games
|
|
.iter()
|
|
.map(|(key, game)| (key.as_str(), game.name.as_str())),
|
|
);
|
|
|
|
assert!(failed.is_empty());
|
|
}
|