Finish implementing initial objects

This commit is contained in:
zontreck 2024-07-08 23:25:51 -07:00
parent 161484f693
commit 39dac3b191
4 changed files with 206 additions and 65 deletions

View file

@ -1,7 +1,27 @@
class BitMask {}
abstract class MaskEnum {
int getValue();
List<MaskEnum> getValues();
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);
}
}