Skip to main content

pawkit_input/binding/
axis.rs

1use num_enum::TryFromPrimitive;
2use serde::{Deserialize, Serialize};
3
4use crate::binding::implement_into;
5
6#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
7pub enum KeyboardAxis {}
8
9impl TryFromPrimitive for KeyboardAxis {
10    type Primitive = u8;
11
12    type Error = ();
13
14    const NAME: &'static str = "KeyboardAxis";
15
16    fn try_from_primitive(_: Self::Primitive) -> Result<Self, Self::Error> {
17        return Err(());
18    }
19}
20
21implement_into!(KeyboardAxis);
22
23#[repr(u8)]
24#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, TryFromPrimitive)]
25pub enum MouseAxis {
26    DeltaX,
27    DeltaY,
28    WheelX,
29    WheelY,
30}
31
32implement_into!(MouseAxis);
33
34#[repr(u8)]
35#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, TryFromPrimitive)]
36pub enum GamepadAxis {
37    LeftX,
38    LeftY,
39    RightX,
40    RightY,
41    LeftTrigger,
42    RightTrigger,
43}
44
45implement_into!(GamepadAxis);