use bytemuck::{Pod, Zeroable};
use winapi::um::xinput::*;
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
#[derive(Default, Pod, Zeroable)]
#[repr(transparent)] pub struct VK(u16);
enumish! {
VK => u16;
None, PadA, PadB, PadX, PadY, PadRShoulder, PadLShoulder, PadRTrigger, PadLTrigger,
PadDPadUp, PadDPadDown, PadDPadLeft, PadDPadRight, PadStart, PadBack, PadLThumbPress, PadRThumbPress,
PadLThumbUp, PadLThumbDown, PadLThumbRight, PadLThumbLeft, PadLThumbUpLeft, PadLThumbUpRight, PadLThumbDownRight, PadLThumbDownLeft,
PadRThumbUp, PadRThumbDown, PadRThumbRight, PadRThumbLeft, PadRThumbUpLeft, PadRThumbUpRight, PadRThumbDownRight, PadRThumbDownLeft,
}
#[allow(non_upper_case_globals)] impl VK {
pub const None : VK = VK(0);
pub const PadA : VK = VK(VK_PAD_A);
pub const PadB : VK = VK(VK_PAD_B);
pub const PadX : VK = VK(VK_PAD_X);
pub const PadY : VK = VK(VK_PAD_Y);
pub const PadRShoulder : VK = VK(VK_PAD_RSHOULDER);
pub const PadLShoulder : VK = VK(VK_PAD_LSHOULDER);
pub const PadRTrigger : VK = VK(VK_PAD_RTRIGGER);
pub const PadLTrigger : VK = VK(VK_PAD_LTRIGGER);
pub const PadDPadUp : VK = VK(VK_PAD_DPAD_UP);
pub const PadDPadDown : VK = VK(VK_PAD_DPAD_DOWN);
pub const PadDPadLeft : VK = VK(VK_PAD_DPAD_LEFT);
pub const PadDPadRight : VK = VK(VK_PAD_DPAD_RIGHT);
pub const PadStart : VK = VK(VK_PAD_START);
pub const PadBack : VK = VK(VK_PAD_BACK);
pub const PadLThumbPress : VK = VK(VK_PAD_LTHUMB_PRESS);
pub const PadRThumbPress : VK = VK(VK_PAD_RTHUMB_PRESS);
pub const PadLThumbUp : VK = VK(VK_PAD_LTHUMB_UP);
pub const PadLThumbDown : VK = VK(VK_PAD_LTHUMB_DOWN);
pub const PadLThumbRight : VK = VK(VK_PAD_LTHUMB_RIGHT);
pub const PadLThumbLeft : VK = VK(VK_PAD_LTHUMB_LEFT);
pub const PadLThumbUpLeft : VK = VK(VK_PAD_LTHUMB_UPLEFT);
pub const PadLThumbUpRight : VK = VK(VK_PAD_LTHUMB_UPRIGHT);
pub const PadLThumbDownRight : VK = VK(VK_PAD_LTHUMB_DOWNRIGHT);
pub const PadLThumbDownLeft : VK = VK(VK_PAD_LTHUMB_DOWNLEFT);
pub const PadRThumbUp : VK = VK(VK_PAD_RTHUMB_UP);
pub const PadRThumbDown : VK = VK(VK_PAD_RTHUMB_DOWN);
pub const PadRThumbRight : VK = VK(VK_PAD_RTHUMB_RIGHT);
pub const PadRThumbLeft : VK = VK(VK_PAD_RTHUMB_LEFT);
pub const PadRThumbUpLeft : VK = VK(VK_PAD_RTHUMB_UPLEFT);
pub const PadRThumbUpRight : VK = VK(VK_PAD_RTHUMB_UPRIGHT);
pub const PadRThumbDownRight : VK = VK(VK_PAD_RTHUMB_DOWNRIGHT);
pub const PadRThumbDownLeft : VK = VK(VK_PAD_RTHUMB_DOWNLEFT);
}