usbhidusage 0.1.3

A general purpose library for working with usb Human Interface Device Descriptors from the HID Usage Tables for Universal Serial Bus (USB) v1.5
Documentation
#[derive(Clone, Copy, PartialEq, PartialOrd, Ord, Eq, Hash, Debug, Default)]
#[non_exhaustive]
#[repr(u16)]
pub enum VrControlsUsage {
    #[default]
    Undefined,
    Belt,
    BodySuit,
    Flexor,
    Glove,
    HeadTracker,
    HeadMountedDisplay,
    HandTracker,
    Oculometer,
    Vest,
    AnimatronicDevice,
    Reserved0B_1F(u16),
    StereoEnable = 32,
    DisplayEnable,
    Reserved22_FFFF(u16),
}
impl<T> From<T> for VrControlsUsage
where
    T: TryInto<u16>,
{
    fn from(value: T) -> Self {
        let value: u16 = value.try_into().unwrap_or(0);
        match value {
            0 => Self::Undefined,
            1 => Self::Belt,
            2 => Self::BodySuit,
            3 => Self::Flexor,
            4 => Self::Glove,
            5 => Self::HeadTracker,
            6 => Self::HeadMountedDisplay,
            7 => Self::HandTracker,
            8 => Self::Oculometer,
            9 => Self::Vest,
            10 => Self::AnimatronicDevice,
            11..32 => Self::Reserved0B_1F(value),
            32 => Self::StereoEnable,
            33 => Self::DisplayEnable,
            34..=65535 => Self::Reserved22_FFFF(value),
        }
    }
}