Finish implementing initial objects
This commit is contained in:
parent
161484f693
commit
39dac3b191
4 changed files with 206 additions and 65 deletions
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue