use derive_new::new;
use getset::{CopyGetters, Getters};
use crate::packet::header::Header;
#[derive(new, Debug, CopyGetters, Getters, PartialEq, Copy, Clone, PartialOrd, Default)]
#[allow(clippy::too_many_arguments)]
pub struct CarSetup {
#[getset(get_copy = "pub")]
front_wing: u8,
#[getset(get_copy = "pub")]
rear_wing: u8,
#[getset(get_copy = "pub")]
on_throttle: u8,
#[getset(get_copy = "pub")]
off_throttle: u8,
#[getset(get_copy = "pub")]
front_camber: f32,
#[getset(get_copy = "pub")]
rear_camber: f32,
#[getset(get_copy = "pub")]
front_toe: f32,
#[getset(get_copy = "pub")]
rear_toe: f32,
#[getset(get_copy = "pub")]
front_suspension: u8,
#[getset(get_copy = "pub")]
rear_suspension: u8,
#[getset(get_copy = "pub")]
front_anti_roll_bar: u8,
#[getset(get_copy = "pub")]
rear_anti_roll_bar: u8,
#[getset(get_copy = "pub")]
front_suspension_height: u8,
#[getset(get_copy = "pub")]
rear_suspension_height: u8,
#[getset(get_copy = "pub")]
brake_pressure: u8,
#[getset(get_copy = "pub")]
brake_bias: u8,
#[getset(get_copy = "pub")]
front_tyre_pressure: f32,
#[getset(get_copy = "pub")]
rear_tyre_pressure: f32,
#[getset(get_copy = "pub")]
ballast: u8,
#[getset(get_copy = "pub")]
fuel_load: f32,
}
#[derive(new, Debug, Getters, PartialEq, Clone, PartialOrd)]
pub struct CarSetupPacket {
#[getset(get = "pub")]
header: Header,
#[getset(get = "pub")]
setups: Vec<CarSetup>,
}