1
0
Fork 0
mirror of https://github.com/archtechx/enums.git synced 2025-12-13 03:54:03 +00:00

add enum description

This commit is contained in:
Anthony 2022-02-28 14:58:07 +08:00
parent 20fa78c2b1
commit c983a9f50b
5 changed files with 83 additions and 2 deletions

View file

@ -15,6 +15,8 @@ use ArchTech\Enums\InvokableCases;
use ArchTech\Enums\Names;
use ArchTech\Enums\Options;
use ArchTech\Enums\Values;
use ArchTech\Enums\Descriptions;
use ArchTech\Enums\DescriptionInterface;
uses(ArchTech\Enums\Tests\TestCase::class)->in('Pest');
@ -49,10 +51,20 @@ function something()
// ..
}
enum Status: int
enum Status: int implements DescriptionInterface
{
use InvokableCases, Options, Names, Values;
use InvokableCases, Options, Names, Values, Descriptions;
case PENDING = 0;
case DONE = 1;
public function getDescription(): string
{
return match ($this) {
self::PENDING => 'this is `PENDING` description',
self::DONE => 'this is `DONE` description',
};
}
}

View file

@ -0,0 +1,5 @@
<?php
it('can return an array of case descriptions')
->expect(Status::descriptions())
->toBe([0 => 'this is `PENDING` description', 1 => 'this is `DONE` description']);