• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use super::*;
2 
3 use crate::Flags;
4 
5 #[test]
cases()6 fn cases() {
7     case(false, TestFlags::empty(), TestFlags::contains_unknown_bits);
8     case(false, TestFlags::A, TestFlags::contains_unknown_bits);
9 
10     case(
11         true,
12         TestFlags::ABC | TestFlags::from_bits_retain(1 << 3),
13         TestFlags::contains_unknown_bits,
14     );
15 
16     case(
17         true,
18         TestFlags::empty() | TestFlags::from_bits_retain(1 << 3),
19         TestFlags::contains_unknown_bits,
20     );
21 
22     case(false, TestFlags::all(), TestFlags::contains_unknown_bits);
23 
24     case(false, TestZero::empty(), TestZero::contains_unknown_bits);
25 }
26 #[track_caller]
case<T: Flags + std::fmt::Debug>(expected: bool, value: T, inherent: impl FnOnce(&T) -> bool)27 fn case<T: Flags + std::fmt::Debug>(expected: bool, value: T, inherent: impl FnOnce(&T) -> bool) {
28     assert_eq!(
29         expected,
30         inherent(&value),
31         "{:?}.contains_unknown_bits()",
32         value
33     );
34     assert_eq!(
35         expected,
36         Flags::contains_unknown_bits(&value),
37         "Flags::contains_unknown_bits({:?})",
38         value
39     );
40 }
41