mixin EFlags on Enum { int get value => 1 << index; } /// A simple universal bitmask object class BitMask { int _mask = 0; BitMask(this._mask); void setBit(int bit) { _mask |= bit; } void unsetBit(int bit) { _mask ^= bit; } int get value => _mask; factory BitMask.of(int? val) { if (val == null) return BitMask(0); else return BitMask(val); } }