mirror of
https://github.com/maciejpedzich/f1-game-packet-parser.git
synced 2025-04-18 18:51:11 +02:00
51 lines
1.6 KiB
Rust
51 lines
1.6 KiB
Rust
use super::{u8_to_bool, u8_to_usize};
|
|
use crate::constants::{GearboxAssist, TractionControl, MAX_NUM_CARS};
|
|
|
|
use binrw::BinRead;
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
#[non_exhaustive]
|
|
#[derive(
|
|
BinRead, Eq, PartialEq, Ord, PartialOrd, Copy, Clone, Debug, Serialize, Deserialize,
|
|
)]
|
|
#[br(little, import(_packet_format: u16))]
|
|
pub struct TimeTrialDataSet {
|
|
/// Index of the car this data set relates to.
|
|
#[br(
|
|
map(u8_to_usize),
|
|
assert(
|
|
vehicle_index < MAX_NUM_CARS,
|
|
"Time trial data set has an invalid vehicle index: {}",
|
|
vehicle_index
|
|
)
|
|
)]
|
|
pub vehicle_index: usize,
|
|
/// Team's ID.
|
|
/// See [`team_id`](mod@crate::constants::team_id) for possible values.
|
|
pub team_id: u8,
|
|
/// Lap time in milliseconds.
|
|
pub lap_time_ms: u32,
|
|
/// Sector 1 time in milliseconds.
|
|
pub sector1_time_ms: u32,
|
|
/// Sector 2 time in milliseconds.
|
|
pub sector2_time_ms: u32,
|
|
/// Sector 3 time in milliseconds.
|
|
pub sector3_time_ms: u32,
|
|
/// Type of traction control assist enabled.
|
|
pub traction_control: TractionControl,
|
|
/// Type of gearbox assist enabled.
|
|
pub gearbox_assist: GearboxAssist,
|
|
/// Whether ABS is enabled.
|
|
#[br(try_map(u8_to_bool))]
|
|
pub anti_lock_brakes: bool,
|
|
/// Whether equal car performance is enabled.
|
|
#[br(try_map(u8_to_bool))]
|
|
pub equal_car_performance: bool,
|
|
/// Whether custom setup is in use.
|
|
#[br(try_map(u8_to_bool))]
|
|
pub custom_setup: bool,
|
|
/// Whether this lap is valid.
|
|
#[br(try_map(u8_to_bool))]
|
|
pub valid: bool,
|
|
}
|