use crate::xinput::*;
use bytemuck::{Pod, Zeroable};
#[derive(Clone, Copy, Debug)]
#[derive(Default, Pod, Zeroable)]
#[repr(C)] pub struct State {
pub packet_number: u32,
pub gamepad: Gamepad,
}
impl std::ops::Deref for State {
type Target = Gamepad;
fn deref(&self) -> &Gamepad { &self.gamepad }
}
impl std::ops::DerefMut for State {
fn deref_mut(&mut self) -> &mut Gamepad { &mut self.gamepad }
}
test_layout! {
State => winapi::um::xinput::XINPUT_STATE {
packet_number => dwPacketNumber,
gamepad => Gamepad,
}
}
#[test] fn test_traits_for_coverage() {
let _state = State::default();
let _state = State::zeroed();
let mut _state = _state.clone();
let _ = _state.left_trigger;
_state.left_trigger = 42;
dbg!(_state);
}