// SPDX-License-Identifier: Apache-2.0 or BSD-3-Clause #[derive(Clone, Copy, Eq, PartialEq, Debug)] pub(crate) enum RxOps { /// VSOCK_OP_REQUEST Request = 0, /// VSOCK_OP_RW Rw = 1, /// VSOCK_OP_RESPONSE Response = 2, /// VSOCK_OP_CREDIT_UPDATE CreditUpdate = 3, /// VSOCK_OP_RST Reset = 4, } impl RxOps { /// Convert enum value into bitmask. pub fn bitmask(self) -> u8 { 1u8 << (self as u8) } } #[cfg(test)] mod tests { use super::*; #[test] fn test_bitmask() { assert_eq!(1, RxOps::Request.bitmask()); assert_eq!(2, RxOps::Rw.bitmask()); assert_eq!(4, RxOps::Response.bitmask()); assert_eq!(8, RxOps::CreditUpdate.bitmask()); assert_eq!(16, RxOps::Reset.bitmask()); } }