input_actions/source/
button.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
2pub enum Button {
3 FaceBottom,
8 FaceLeft,
13 FaceRight,
18 FaceTop,
23
24 VirtualConfirm,
31 VirtualDeny,
38
39 LThumbstick,
41 RThumbstick,
43
44 DPadUp,
45 DPadDown,
46 DPadLeft,
47 DPadRight,
48
49 LShoulder,
50 RShoulder,
51
52 LTrigger,
53 RTrigger,
54
55 Special,
59 LSpecial,
63 RSpecial,
67}
68
69impl std::convert::TryFrom<gilrs::Button> for Button {
70 type Error = ();
71 fn try_from(other: gilrs::Button) -> Result<Self, Self::Error> {
72 match other {
73 gilrs::Button::South => Ok(Button::FaceBottom),
75 gilrs::Button::East => Ok(Button::FaceLeft),
76 gilrs::Button::North => Ok(Button::FaceTop),
77 gilrs::Button::West => Ok(Button::FaceRight),
78 gilrs::Button::C => Err(()),
79 gilrs::Button::Z => Err(()),
80 gilrs::Button::LeftTrigger => Ok(Button::LTrigger),
82 gilrs::Button::LeftTrigger2 => Ok(Button::LTrigger),
83 gilrs::Button::RightTrigger => Ok(Button::RTrigger),
84 gilrs::Button::RightTrigger2 => Ok(Button::RTrigger),
85 gilrs::Button::Select => Ok(Button::LSpecial),
87 gilrs::Button::Start => Ok(Button::RSpecial),
88 gilrs::Button::Mode => Ok(Button::Special),
89 gilrs::Button::LeftThumb => Ok(Button::LThumbstick),
91 gilrs::Button::RightThumb => Ok(Button::RThumbstick),
92 gilrs::Button::DPadUp => Ok(Button::DPadUp),
94 gilrs::Button::DPadDown => Ok(Button::DPadDown),
95 gilrs::Button::DPadLeft => Ok(Button::DPadLeft),
96 gilrs::Button::DPadRight => Ok(Button::DPadRight),
97
98 gilrs::Button::Unknown => Err(()),
99 }
100 }
101}