use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Avatar {
pub level: u32,
pub stat: String,
pub url: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct AvatarsStats {
pub mm_protoss_wins: WinStats,
pub mm_terran_wins: WinStats,
pub mm_zerg_wins: WinStats,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct GameResult {
pub attributes: GameResultAttributes,
pub benefactor_id: String,
pub create_time: String,
pub game_id: String,
pub gateway_id: u32,
pub match_guid: String,
pub players: Vec<Player>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct GameResultAttributes {
pub client_version: String,
#[serde(rename = "mapName")]
pub map_name: String,
pub tileset: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct MatchmakedStats {
pub benefactor_id: String,
pub bucket: u32,
pub disconnects: u32,
pub game_mode_id: u32,
pub highest_points: u32,
pub highest_rating: u32,
pub loss_streak: u32,
pub losses: u32,
pub points: u32,
pub rating: u32,
pub season_id: u32,
pub toon: String,
pub toon_guid: u32,
pub win_streak: u32,
pub wins: u32,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Player {
pub attributes: PlayerAttributes,
pub result: String,
pub stats: PlayerStats,
pub toon: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct PlayerAttributes {
#[serde(rename = "gPlayerData_idx")]
pub g_player_data_idx: String,
pub left: String,
pub race: Option<String>,
pub team: Option<String>,
pub r#type: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct PlayerStats {
pub zerg_apm: Option<String>,
pub zerg_games_played: Option<String>,
pub zerg_play_time: Option<String>,
pub zerg_resources_gas: Option<String>,
pub zerg_resources_minerals: Option<String>,
pub zerg_resources_score: Option<String>,
pub zerg_resources_spent: Option<String>,
pub zerg_score_overall: Option<String>,
pub zerg_structures_razed: Option<String>,
pub zerg_structures_lost: Option<String>,
pub zerg_structures_constructed: Option<String>,
pub zerg_structures_score: Option<String>,
pub zerg_units_killed: Option<String>,
pub zerg_units_lost: Option<String>,
pub zerg_units_produced: Option<String>,
pub zerg_units_score: Option<String>,
pub zerg_draws: Option<String>,
pub zerg_losses: Option<String>,
pub zerg_wins: Option<String>,
pub terran_apm: Option<String>,
pub terran_games_played: Option<String>,
pub terran_play_time: Option<String>,
pub terran_resources_gas: Option<String>,
pub terran_resources_minerals: Option<String>,
pub terran_resources_score: Option<String>,
pub terran_resources_spent: Option<String>,
pub terran_score_overall: Option<String>,
pub terran_structures_constructed: Option<String>,
pub terran_structures_lost: Option<String>,
pub terran_structures_razed: Option<String>,
pub terran_structures_score: Option<String>,
pub terran_units_killed: Option<String>,
pub terran_units_lost: Option<String>,
pub terran_units_produced: Option<String>,
pub terran_units_score: Option<String>,
pub terran_draws: Option<String>,
pub terran_losses: Option<String>,
pub terran_wins: Option<String>,
pub protoss_apm: Option<String>,
pub protoss_games_played: Option<String>,
pub protoss_play_time: Option<String>,
pub protoss_resources_gas: Option<String>,
pub protoss_resources_minerals: Option<String>,
pub protoss_resources_score: Option<String>,
pub protoss_resources_spent: Option<String>,
pub protoss_score_overall: Option<String>,
pub protoss_structures_constructed: Option<String>,
pub protoss_structures_lost: Option<String>,
pub protoss_structures_razed: Option<String>,
pub protoss_structures_score: Option<String>,
pub protoss_units_killed: Option<String>,
pub protoss_units_lost: Option<String>,
pub protoss_units_produced: Option<String>,
pub protoss_units_score: Option<String>,
pub protoss_draws: Option<String>,
pub protoss_losses: Option<String>,
pub protoss_wins: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Profile {
pub avatar_id: String,
pub description: String,
pub private: bool,
pub show_avatar_frame: bool,
pub title: String,
pub toon: String,
pub toon_guid: u32,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct RawStats {
pub legacy_disconnects: u32,
pub legacy_losses: u32,
pub legacy_toon_creation_time: u32,
pub legacy_wins: u32,
pub protoss_apm_max: u32,
pub protoss_apm_min: u32,
pub protoss_apm_sum: u32,
pub protoss_disconnects_max: u32,
pub protoss_disconnects_min: u32,
pub protoss_disconnects_sum: u32,
pub protoss_draws_max: u32,
pub protoss_draws_min: u32,
pub protoss_draws_sum: u32,
pub protoss_losses_max: u32,
pub protoss_losses_min: u32,
pub protoss_losses_sum: u32,
pub protoss_play_time_max: u32,
pub protoss_play_time_min: u32,
pub protoss_play_time_sum: u32,
pub protoss_resources_gas_max: u32,
pub protoss_resources_gas_min: u32,
pub protoss_resources_gas_sum: u32,
pub protoss_resources_minerals_max: u32,
pub protoss_resources_minerals_min: u32,
pub protoss_resources_minerals_sum: u32,
pub protoss_resources_score_max: u32,
pub protoss_resources_score_min: u32,
pub protoss_resources_score_sum: u32,
pub protoss_resources_spent_max: u32,
pub protoss_resources_spent_min: u32,
pub protoss_resources_spent_sum: u32,
pub protoss_structures_constructed_max: u32,
pub protoss_structures_constructed_min: u32,
pub protoss_structures_constructed_sum: u32,
pub protoss_structures_lost_max: u32,
pub protoss_structures_lost_min: u32,
pub protoss_structures_lost_sum: u32,
pub protoss_structures_razed_max: u32,
pub protoss_structures_razed_min: u32,
pub protoss_structures_razed_sum: u32,
pub protoss_structures_score_max: u32,
pub protoss_structures_score_min: u32,
pub protoss_structures_score_sum: u32,
pub protoss_units_killed_max: u32,
pub protoss_units_killed_min: u32,
pub protoss_units_killed_sum: u32,
pub protoss_units_lost_max: u32,
pub protoss_units_lost_min: u32,
pub protoss_units_lost_sum: u32,
pub protoss_units_produced_max: u32,
pub protoss_units_produced_min: u32,
pub protoss_units_produced_sum: u32,
pub protoss_units_score_max: u32,
pub protoss_units_score_min: u32,
pub protoss_units_score_sum: u32,
pub protoss_wins_max: u32,
pub protoss_wins_min: u32,
pub protoss_wins_sum: u32,
pub terran_apm_max: u32,
pub terran_apm_min: u32,
pub terran_apm_sum: u32,
pub terran_disconnects_max: u32,
pub terran_disconnects_min: u32,
pub terran_disconnects_sum: u32,
pub terran_draws_max: u32,
pub terran_draws_min: u32,
pub terran_draws_sum: u32,
pub terran_losses_max: u32,
pub terran_losses_min: u32,
pub terran_losses_sum: u32,
pub terran_play_time_max: u32,
pub terran_play_time_min: u32,
pub terran_play_time_sum: u32,
pub terran_resources_gas_max: u32,
pub terran_resources_gas_min: u32,
pub terran_resources_gas_sum: u32,
pub terran_resources_minerals_max: u32,
pub terran_resources_minerals_min: u32,
pub terran_resources_minerals_sum: u32,
pub terran_resources_score_max: u32,
pub terran_resources_score_min: u32,
pub terran_resources_score_sum: u32,
pub terran_resources_spent_max: u32,
pub terran_resources_spent_min: u32,
pub terran_resources_spent_sum: u32,
pub terran_structures_constructed_max: u32,
pub terran_structures_constructed_min: u32,
pub terran_structures_constructed_sum: u32,
pub terran_structures_lost_max: u32,
pub terran_structures_lost_min: u32,
pub terran_structures_lost_sum: u32,
pub terran_structures_razed_max: u32,
pub terran_structures_razed_min: u32,
pub terran_structures_razed_sum: u32,
pub terran_structures_score_max: u32,
pub terran_structures_score_min: u32,
pub terran_structures_score_sum: u32,
pub terran_units_killed_max: u32,
pub terran_units_killed_min: u32,
pub terran_units_killed_sum: u32,
pub terran_units_lost_max: u32,
pub terran_units_lost_min: u32,
pub terran_units_lost_sum: u32,
pub terran_units_produced_max: u32,
pub terran_units_produced_min: u32,
pub terran_units_produced_sum: u32,
pub terran_units_score_max: u32,
pub terran_units_score_min: u32,
pub terran_units_score_sum: u32,
pub terran_wins_max: u32,
pub terran_wins_min: u32,
pub terran_wins_sum: u32,
pub zerg_apm_max: u32,
pub zerg_apm_min: u32,
pub zerg_apm_sum: u32,
pub zerg_disconnects_max: u32,
pub zerg_disconnects_min: u32,
pub zerg_disconnects_sum: u32,
pub zerg_draws_max: u32,
pub zerg_draws_min: u32,
pub zerg_draws_sum: u32,
pub zerg_losses_max: u32,
pub zerg_losses_min: u32,
pub zerg_losses_sum: u32,
pub zerg_play_time_max: u32,
pub zerg_play_time_min: u32,
pub zerg_play_time_sum: u32,
pub zerg_resources_gas_max: u32,
pub zerg_resources_gas_min: u32,
pub zerg_resources_gas_sum: u32,
pub zerg_resources_minerals_max: u32,
pub zerg_resources_minerals_min: u32,
pub zerg_resources_minerals_sum: u32,
pub zerg_resources_score_max: u32,
pub zerg_resources_score_min: u32,
pub zerg_resources_score_sum: u32,
pub zerg_resources_spent_max: u32,
pub zerg_resources_spent_min: u32,
pub zerg_resources_spent_sum: u32,
pub zerg_structures_constructed_max: u32,
pub zerg_structures_constructed_min: u32,
pub zerg_structures_constructed_sum: u32,
pub zerg_structures_lost_max: u32,
pub zerg_structures_lost_min: u32,
pub zerg_structures_lost_sum: u32,
pub zerg_structures_razed_max: u32,
pub zerg_structures_razed_min: u32,
pub zerg_structures_razed_sum: u32,
pub zerg_structures_score_max: u32,
pub zerg_structures_score_min: u32,
pub zerg_structures_score_sum: u32,
pub zerg_units_killed_max: u32,
pub zerg_units_killed_min: u32,
pub zerg_units_killed_sum: u32,
pub zerg_units_lost_max: u32,
pub zerg_units_lost_min: u32,
pub zerg_units_lost_sum: u32,
pub zerg_units_produced_max: u32,
pub zerg_units_produced_min: u32,
pub zerg_units_produced_sum: u32,
pub zerg_units_score_max: u32,
pub zerg_units_score_min: u32,
pub zerg_units_score_sum: u32,
pub zerg_wins_max: u32,
pub zerg_wins_min: u32,
pub zerg_wins_sum: u32,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Replay {
pub attributes: ReplayAttributes,
pub create_time: u32,
pub link: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct ReplayAttributes {
pub game_creator: String,
pub game_id: String,
pub game_name: String,
pub game_save_id: String,
pub game_speed: String,
pub game_sub_type: String,
pub game_type: String,
pub map_era: String,
pub map_height: String,
pub map_title: String,
pub map_width: String,
pub replay_description: String,
pub replay_humans: String,
pub replay_map_number: String,
pub replay_max_players: String,
pub replay_min_players: String,
pub replay_opponents: String,
pub replay_player_names: String,
pub replay_player_races: String,
pub replay_player_types: String,
pub replay_result: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Stat {
pub benefactor_id: String,
pub gateway_id: u32,
pub raw: RawStats,
pub season_id: u32,
pub toon: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Toon {
pub games_last_week: u32,
pub gateway_id: u32,
pub guid: u32,
pub toon: String,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct WinStats {
pub bonus: f64,
pub normal: f64,
pub total: f64,
}