27 lines
399 B
Dart
27 lines
399 B
Dart
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);
|
|
}
|
|
}
|