diff --git a/src/Helpers/Bitmasks/Bitmask.php b/src/Helpers/Bitmasks/Bitmask.php index 30aab03..e75b301 100644 --- a/src/Helpers/Bitmasks/Bitmask.php +++ b/src/Helpers/Bitmasks/Bitmask.php @@ -84,6 +84,11 @@ public function none(self|UnitEnum|string|int ...$bits): bool return !$this->any(...$bits); } + public function empty(): bool + { + return $this->bitmask === 0; + } + public function value(): int { return $this->bitmask; diff --git a/tests/Unit/Helpers/Bitmasks/BitmaskTest.php b/tests/Unit/Helpers/Bitmasks/BitmaskTest.php index d7d1a6d..0726611 100644 --- a/tests/Unit/Helpers/Bitmasks/BitmaskTest.php +++ b/tests/Unit/Helpers/Bitmasks/BitmaskTest.php @@ -98,6 +98,11 @@ expect($bitmask->any(BitmasksIntEnum::Execute, BitmasksIntEnum::Read, BitmasksIntEnum::Write))->toBeTrue(); }); +test('empty', function () { + expect((new Bitmask(BitmasksIntEnum::class, 0)->empty())->toBeTrue(); + expect((new Bitmask(BitmasksIntEnum::class, 24)->empty())->toBeFalse(); +}); + test('xor', function () { $bitmask = new Bitmask(BitmasksIntEnum::class, 24);