The idiomatic way is using the bitflags crate, that you already linked
As you can see, Rust enums aren't great for implementing bitflags, since you will struggle to make them "closed". If you have Adv and Verb, you also need a variant for Adv | Verb combined, and so on..
You can make a struct with an integer and overload the bitwise operations to work with the enum as you wanted. But now you're just reimplementing the crate.