#[macro_use] extern crate auto_enum; #[auto_enum] pub enum Bar { None = 0, Some = 1, } #[enum_flags(u32)] pub enum Foo { A, B, C, D, } fn main() { let flags = Foo::B | Foo::D; println!("{}", flags.is_set(Foo::A)); println!("{}", flags.is_set(Foo::B)); println!("{}", flags.is_set(Foo::C)); println!("{}", flags.is_set(Foo::D)); }