I've come to really like Nim's built-in `set` type for that sorta scenario. It's just a bit-vector but it took me months before I realized that. You can cast an `int32` to a `set[MyEnum]` and be able to do set unions, differences, etc. Makes it easy to define a mask just by `const myMask = {A, B, E}`.
Making a Zig BitSet would probably be doable, for those cases where bitfields are overkill.
Making a Zig BitSet would probably be doable, for those cases where bitfields are overkill.
1: https://nim-lang.org/docs/manual.html#types-set-type