LibAC-dart/lib/structs/Bitmasks.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);
}
}