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