#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct StaticsMap {
pub sm_version: String,
pub ac_version: String,
pub number_of_sessions: i32,
pub num_cars: i32,
pub track: String,
pub sector_count: i32,
pub player_name: String,
pub player_surname: String,
pub player_nick: String,
pub car_model: String,
pub max_rpm: i32,
pub max_fuel: f32,
pub penalty_enabled: bool,
pub aid_fuel_rate: f32,
pub aid_tyre_rate: f32,
pub aid_mechanical_damage: f32,
pub aid_stability: f32,
pub aid_auto_clutch: bool,
pub pit_window_start: i32,
pub pit_window_end: i32,
pub is_online: bool,
pub dry_tyres_name: String,
pub wet_tyres_name: String,
}
impl StaticsMap {
pub fn full_player_name(&self) -> String {
format!("{} {}", self.player_name, self.player_surname)
}
pub fn is_multiplayer(&self) -> bool {
self.is_online && self.num_cars > 1
}
pub fn has_pit_window(&self) -> bool {
self.pit_window_start > 0 && self.pit_window_end > self.pit_window_start
}
pub fn pit_window_duration(&self) -> i32 {
if self.has_pit_window() {
self.pit_window_end - self.pit_window_start
} else {
0
}
}
pub fn has_assists(&self) -> bool {
self.aid_auto_clutch || self.aid_stability > 0.0
}
}