Add Usage enum for all pages in usb_hid_usage
This commit is contained in:
@ -2,7 +2,7 @@ use core::num::NonZeroU16;
|
|||||||
|
|
||||||
pub const PAGE: u16 = 0x09;
|
pub const PAGE: u16 = 0x09;
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||||
pub enum Usage {
|
pub enum Usage {
|
||||||
NoButton,
|
NoButton,
|
||||||
Button(NonZeroU16),
|
Button(NonZeroU16),
|
||||||
|
@ -48,6 +48,23 @@ macro_rules! page {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
|
||||||
|
#[non_exhaustive]
|
||||||
|
pub enum Usage {
|
||||||
|
$($v($m::Usage),)*
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TryFrom<(u16, u16)> for Usage {
|
||||||
|
type Error = UnknownUsage;
|
||||||
|
|
||||||
|
fn try_from((page, usage): (u16, u16)) -> Result<Self, Self::Error> {
|
||||||
|
Ok(match page {
|
||||||
|
$($m::PAGE => Self::$v($m::Usage::try_from(usage).map_err(|_| UnknownUsage)?),)*
|
||||||
|
_ => return Err(UnknownUsage),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user