1 mod all;
2 mod bits;
3 mod complement;
4 mod contains;
5 mod difference;
6 mod empty;
7 mod eq;
8 mod extend;
9 mod flags;
10 mod fmt;
11 mod from_bits;
12 mod from_bits_retain;
13 mod from_bits_truncate;
14 mod from_name;
15 mod insert;
16 mod intersection;
17 mod intersects;
18 mod is_all;
19 mod is_empty;
20 mod iter;
21 mod parser;
22 mod remove;
23 mod symmetric_difference;
24 mod union;
25 
26 bitflags! {
27     #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
28     pub struct TestFlags: u8 {
29         /// 1
30         const A = 1;
31 
32         /// 1 << 1
33         const B = 1 << 1;
34 
35         /// 1 << 2
36         const C = 1 << 2;
37 
38         /// 1 | (1 << 1) | (1 << 2)
39         const ABC = Self::A.bits() | Self::B.bits() | Self::C.bits();
40     }
41 
42     #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
43     pub struct TestFlagsInvert: u8 {
44         /// 1 | (1 << 1) | (1 << 2)
45         const ABC = Self::A.bits() | Self::B.bits() | Self::C.bits();
46 
47         /// 1
48         const A = 1;
49 
50         /// 1 << 1
51         const B = 1 << 1;
52 
53         /// 1 << 2
54         const C = 1 << 2;
55     }
56 
57     #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
58     pub struct TestZero: u8 {
59         /// 0
60         const ZERO = 0;
61     }
62 
63     #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
64     pub struct TestZeroOne: u8 {
65         /// 0
66         const ZERO = 0;
67 
68         /// 1
69         const ONE = 1;
70     }
71 
72     #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
73     pub struct TestUnicode: u8 {
74         /// 1
75         const  = 1;
76 
77         /// 2
78         const  = 1 << 1;
79     }
80 
81     #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
82     pub struct TestEmpty: u8 {}
83 
84     #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
85     pub struct TestOverlapping: u8 {
86         /// 1 | (1 << 1)
87         const AB = 1 | (1 << 1);
88 
89         /// (1 << 1) | (1 << 2)
90         const BC = (1 << 1) | (1 << 2);
91     }
92 
93     #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
94     pub struct TestOverlappingFull: u8 {
95         /// 1
96         const A = 1;
97 
98         /// 1
99         const B = 1;
100 
101         /// 1
102         const C = 1;
103 
104         /// 2
105         const D = 1 << 1;
106     }
107 
108     #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
109     pub struct TestExternal: u8 {
110         /// 1
111         const A = 1;
112 
113         /// 1 << 1
114         const B = 1 << 1;
115 
116         /// 1 << 2
117         const C = 1 << 2;
118 
119         /// 1 | (1 << 1) | (1 << 2)
120         const ABC = Self::A.bits() | Self::B.bits() | Self::C.bits();
121 
122         /// External
123         const _ = !0;
124     }
125 
126     #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)]
127     pub struct TestExternalFull: u8 {
128         /// External
129         const _ = !0;
130     }
131 }
132