use bitmask_enum::bitmask;
use std::fmt;
#[bitmask(u8)]
#[bitmask_config(flags_iter)]
enum Bitmask {
Flag1, Flag2, Flag3, }
impl fmt::Display for Bitmask {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_list()
.entries(Self::flags().filter_map(|&(name, value)| self.contains(value).then(|| name)))
.finish()
}
}
fn main() {
let bm = Bitmask::Flag1 | Bitmask::Flag3;
println!("{}", bm); }