#[repr(transparent)]
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
pub struct WpKey(u32);
impl WpKey {
pub const PASSWD: Self = Self(0x0052_4e47);
}
impl WpKey {
pub const fn from_bits(val: u32) -> WpKey {
Self(val & 0x00ff_ffff)
}
pub const fn to_bits(self) -> u32 {
self.0
}
}
impl core::fmt::Debug for WpKey {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
match self.0 {
0x0052_4e47 => f.write_str("PASSWD"),
other => core::write!(f, "0x{:02X}", other),
}
}
}
#[cfg(feature = "defmt")]
impl defmt::Format for WpKey {
fn format(&self, f: defmt::Formatter) {
match self.0 {
0x0052_4e47 => defmt::write!(f, "PASSWD"),
other => defmt::write!(f, "0x{:02X}", other),
}
}
}
impl From<u32> for WpKey {
#[inline(always)]
fn from(val: u32) -> WpKey {
WpKey::from_bits(val)
}
}
impl From<WpKey> for u32 {
#[inline(always)]
fn from(val: WpKey) -> u32 {
WpKey::to_bits(val)
}
}