rofl-parser 0.1.26

Parse useable data from `*.rofl` file
Documentation
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(untagged)]
pub enum Player {
    V13_3(super::player_13_3::Player),
    V12_3(super::player_12_3::Player),
}

#[allow(non_snake_case)]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct RoflJson {
    pub gameLength: i32,
    pub gameVersion: String,
    pub lastGameChunkId: i32,
    pub lastKeyFrameId: i32,
    pub statsJson: Vec<Player>,
}

#[allow(non_snake_case)]
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct MockRoflJson {
    pub gameLength: i32,
    pub gameVersion: String,
    pub lastGameChunkId: i32,
    pub lastKeyFrameId: i32,
    statsJson: String,
}

impl MockRoflJson {
    pub fn parse_stats_json(&self) -> anyhow::Result<Vec<Player>> {
        Ok(serde_json::from_str(&self.statsJson)?)
    }
}