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);
}
}