blob: 6f2046640508578e0ae62adb63eb27bc835af728 [file] [log] [blame]
// 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());
}
}