#[macro_use]
extern crate bitmask;
mod sub {
bitmask! {
pub mask BitMask: u32 where flags Flags {
Flag1 = 1,
Flag2 = 2,
Flag3 = 4,
Flag4 = 8
}
}
}
use sub::BitMask;
fn features1(options: BitMask) {
println!("{:?}", options);
}
fn features2<T: Into<BitMask>>(_: T) {
}
fn main() {
use sub::Flags::*;
features1(Flag3.into());
features1(Flag1 | Flag4);
features2(Flag3);
features2(Flag1 | Flag4);
}