use crate::Variant;
impl Variant {
#[must_use]
pub const fn bitmask(self) -> u8 {
match self {
Self::NCS => 0x0F,
Self::OSF => 0xBF,
Self::DCOM => 0xDF,
Self::Reserved => 0xFF,
}
}
}
#[cfg(test)]
mod tests {
use super::Variant;
#[test]
fn test_variant_bitmask_returns_correct_value_for_each_variant() {
assert_eq!(
Variant::NCS.bitmask(),
0x0F,
"The bitmask for Variant::NCS must be 0x0F"
);
assert_eq!(
Variant::OSF.bitmask(),
0xBF,
"The bitmask for Variant::OSF must be 0xBF"
);
assert_eq!(
Variant::DCOM.bitmask(),
0xDF,
"The bitmask for Variant::DCOM must be 0xDF"
);
assert_eq!(
Variant::Reserved.bitmask(),
0xFF,
"The bitmask for Variant::Reserved must be 0xFF"
);
}
}