Skip to main content

ps_uuid/variant/methods/
bitmask.rs

1use crate::Variant;
2
3impl Variant {
4    #[must_use]
5    pub const fn bitmask(self) -> u8 {
6        match self {
7            Self::NCS => 0x0F,
8            Self::OSF => 0xBF,
9            Self::DCOM => 0xDF,
10            Self::Reserved => 0xFF,
11        }
12    }
13}
14
15#[cfg(test)]
16mod tests {
17    use super::Variant;
18
19    #[test]
20    fn test_variant_bitmask_returns_correct_value_for_each_variant() {
21        // The `bitmask` method is an exhaustive match over the enum variants.
22        // A comprehensive test must therefore verify the output for each
23        // possible input variant.
24
25        // 1. Test the NCS variant
26        assert_eq!(
27            Variant::NCS.bitmask(),
28            0x0F,
29            "The bitmask for Variant::NCS must be 0x0F"
30        );
31
32        // 2. Test the OSF variant
33        assert_eq!(
34            Variant::OSF.bitmask(),
35            0xBF,
36            "The bitmask for Variant::OSF must be 0xBF"
37        );
38
39        // 3. Test the DCOM variant
40        assert_eq!(
41            Variant::DCOM.bitmask(),
42            0xDF,
43            "The bitmask for Variant::DCOM must be 0xDF"
44        );
45
46        // 4. Test the Reserved variant
47        assert_eq!(
48            Variant::Reserved.bitmask(),
49            0xFF,
50            "The bitmask for Variant::Reserved must be 0xFF"
51        );
52    }
53}