moon-driver-utils 0.1.0

Windows Kernel Utils
pub trait BitwiseOps {
    fn contain(&self, bit_mask: u64) -> bool;
    fn add_flag(&mut self, bit_mask: u64);
    fn remove_flag(&mut self, bit_mask: u64);
}

impl BitwiseOps for u32 {
    fn contain(&self, bit_mask: u64) -> bool {
        *self & (bit_mask as u32) != 0
    }

    fn add_flag(&mut self, bit_mask: u64) {
        *self |= bit_mask as u32;
    }

    fn remove_flag(&mut self, bit_mask: u64) {
        *self &= !(bit_mask as u32);
    }
}

impl BitwiseOps for u64 {
    fn contain(&self, bit_mask: u64) -> bool {
        *self & bit_mask != 0
    }

    fn add_flag(&mut self, bit_mask: u64) {
        *self |= bit_mask;
    }

    fn remove_flag(&mut self, bit_mask: u64) {
        *self &= !(bit_mask);
    }
}