I recommend to provide the following API to users:
use bitflags::{bitflags, Flags};
pub struct SomeFlags(u32);
bitflags! {
impl SomeFlags: u32 {
const A = 1 << 0;
const B = 1 << 1;
}
}
let flags = SomeFlags::from_bits_retain(0b100);
if !flags.unknown_bits().empty() {
bail!("unknown bits: {:?}", flags.unknown_bits());
}
Usually, when we found the unknown bits, we want to report them.