input_actions/source/
axis.rs

1#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
2pub enum Axis {
3	/// The x-axis of the left thumbstick.
4	LThumbstickX,
5	/// The y-axis of the left thumbstick.
6	LThumbstickY,
7
8	/// The x-axis of the right thumbstick.
9	RThumbstickX,
10	/// The y-axis of the right thumbstick.
11	RThumbstickY,
12
13	LTrigger,
14	RTrigger,
15}
16
17impl std::convert::TryFrom<gilrs::Axis> for Axis {
18	type Error = ();
19	fn try_from(other: gilrs::Axis) -> Result<Self, Self::Error> {
20		match other {
21			gilrs::Axis::LeftStickX => Ok(Axis::LThumbstickX),
22			gilrs::Axis::LeftStickY => Ok(Axis::LThumbstickY),
23			gilrs::Axis::RightStickX => Ok(Axis::RThumbstickX),
24			gilrs::Axis::RightStickY => Ok(Axis::RThumbstickY),
25
26			gilrs::Axis::LeftZ => Ok(Axis::LTrigger),
27			gilrs::Axis::RightZ => Ok(Axis::RTrigger),
28
29			gilrs::Axis::DPadX => Err(()),
30			gilrs::Axis::DPadY => Err(()),
31			gilrs::Axis::Unknown => Err(()),
32		}
33	}
34}