wthor 0.6.0

Parser for WTHOR files
Documentation
use wthor::{game_archive::GameArchive, records::Records};

fn main() -> Result<(), Error> {
    let game_archive = include_bytes!("../wthor-database/WTH_1977.wtb");
    let players = include_bytes!("../wthor-database/WTHOR.JOU");
    let tournaments = include_bytes!("../wthor-database/WTHOR.TRN");

    let game_archive = wthor::parse::<GameArchive>(game_archive)?;
    let players = wthor::parse::<Records>(players)?;
    let tournaments = wthor::parse::<Records>(tournaments)?;

    let games_json = serde_json::to_string(&game_archive)?;
    let players_json = serde_json::to_string(&players)?;
    let tournaments_json = serde_json::to_string(&tournaments)?;

    let _deserialized_games: GameArchive = serde_json::from_str(&games_json)?;
    let _deserialized_players: Records = serde_json::from_str(&players_json)?;
    let _deserialized_tournaments: Records = serde_json::from_str(&tournaments_json)?;

    Ok(())
}

#[derive(Debug)]
pub enum Error {
    Wthor(wthor::Error),
    Json(serde_json::Error),
}

impl From<wthor::Error> for Error {
    fn from(error: wthor::Error) -> Self {
        Error::Wthor(error)
    }
}

impl From<serde_json::Error> for Error {
    fn from(error: serde_json::Error) -> Self {
        Error::Json(error)
    }
}