rofl_parser/rofl/
rofl_json.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Deserialize, Debug, Clone)]
4#[serde(untagged)]
5pub enum Player {
6    V13_3(super::player_13_3::Player),
7    V12_3(super::player_12_3::Player),
8}
9
10#[allow(non_snake_case)]
11#[derive(Serialize, Deserialize, Debug, Clone)]
12pub struct RoflJson {
13    pub gameLength: i32,
14    pub gameVersion: String,
15    pub lastGameChunkId: i32,
16    pub lastKeyFrameId: i32,
17    pub statsJson: Vec<Player>,
18}
19
20#[allow(non_snake_case)]
21#[derive(Serialize, Deserialize, Debug, Clone)]
22pub struct MockRoflJson {
23    pub gameLength: i32,
24    pub gameVersion: String,
25    pub lastGameChunkId: i32,
26    pub lastKeyFrameId: i32,
27    statsJson: String,
28}
29
30impl MockRoflJson {
31    pub fn parse_stats_json(&self) -> anyhow::Result<Vec<Player>> {
32        Ok(serde_json::from_str(&self.statsJson)?)
33    }
34}