xinput/structures/
state.rs1use crate::*;
2use bytemuck::{Pod, Zeroable};
3
4
5
6#[derive(Clone, Copy, Debug)]
11#[derive(Default, Pod, Zeroable)]
12#[repr(C)] pub struct State {
13 pub packet_number: u32,
17
18 pub gamepad: Gamepad,
20}
21
22impl AsRef<Self> for State { fn as_ref(& self) -> & Self { self } }
23impl AsMut<Self> for State { fn as_mut(&mut self) -> &mut Self { self } }
24
25impl core::ops::Deref for State {
27 type Target = Gamepad;
28 fn deref(&self) -> &Gamepad { &self.gamepad }
29}
30
31impl core::ops::DerefMut for State {
32 fn deref_mut(&mut self) -> &mut Gamepad { &mut self.gamepad }
33}
34
35#[test] fn test_traits_for_coverage() {
36 let _state = State::default();
37 let _state = State::zeroed();
38 let mut _state = _state.clone();
39 let _ = _state.left_trigger;
40 _state.left_trigger = 42;
41 dbg!(_state);
42}
43
44