1 // SPDX-License-Identifier: Apache-2.0 or BSD-3-Clause
2 
3 #[derive(Clone, Copy, Eq, PartialEq, Debug)]
4 pub(crate) enum RxOps {
5     /// VSOCK_OP_REQUEST
6     Request = 0,
7     /// VSOCK_OP_RW
8     Rw = 1,
9     /// VSOCK_OP_RESPONSE
10     Response = 2,
11     /// VSOCK_OP_CREDIT_UPDATE
12     CreditUpdate = 3,
13     /// VSOCK_OP_RST
14     Reset = 4,
15 }
16 
17 impl RxOps {
18     /// Convert enum value into bitmask.
bitmask(self) -> u819     pub fn bitmask(self) -> u8 {
20         1u8 << (self as u8)
21     }
22 }
23 
24 #[cfg(test)]
25 mod tests {
26     use super::*;
27 
28     #[test]
test_bitmask()29     fn test_bitmask() {
30         assert_eq!(1, RxOps::Request.bitmask());
31         assert_eq!(2, RxOps::Rw.bitmask());
32         assert_eq!(4, RxOps::Response.bitmask());
33         assert_eq!(8, RxOps::CreditUpdate.bitmask());
34         assert_eq!(16, RxOps::Reset.bitmask());
35     }
36 }
37