, * }|array{ * name: non-empty-string, * backedCases: array{ * type: 'int', * cases: array, * }|array{ * type: 'string', * cases: array, * }, * } $options * @return BackedCases|PureCases */ public static function fromOptions(array $options) { if (array_key_exists('pureCases', $options) && ! array_key_exists('backedCases', $options)) { return PureCases::fromCases($options['pureCases']); } assert(! array_key_exists('pureCases', $options) && array_key_exists('backedCases', $options)); return BackedCases::fromCasesWithType($options['backedCases']['cases'], $options['backedCases']['type']); } /** * @return BackedCases|PureCases */ public static function fromReflectionCases(ReflectionEnum $enum) { $backingType = $enum->getBackingType(); if ($backingType === null) { return PureCases::fromCases(array_map( /** @return non-empty-string */ static fn(ReflectionEnumUnitCase $singleCase): string => $singleCase->getName(), $enum->getCases() )); } assert($backingType instanceof ReflectionNamedType); $cases = $enum->getCases(); return BackedCases::fromCasesWithType( array_combine( array_map( /** @return non-empty-string */ static fn(ReflectionEnumBackedCase $case): string => $case->getName(), $cases ), array_map(static fn(ReflectionEnumBackedCase $case): string|int => $case->getBackingValue(), $cases), ), $backingType->getName() ); } } __halt_compiler();----SIGNATURE:----bWJDzQtgpnEjYFP33+0ViHJ8/RmX6CN2s4/TjUTYPnyLYY6rU+IdUhT5AkV4q5XSDssW6JpA2Ao1AdVpnCHUscg4mhIjiKs//Cuu7v1krJhvCbP9nGOPW+HmeYxof3RbWCZU5l1Tm8iv3cU6qbDaX1qf3fMVPMV+XIde1YXgeNtIJoJaZ7EHaX51bD0PyAdkpsxlCrxzM5z6ztCgMGe2/SuRbAqj/FI6PK9DHymUcO5+owEc2bh9phbRjKs0qwdgvQk5y1HMMAWYOeWOiRYoal8uc4MaM+WWbn0LpvufBPzASEmGPTIdH0s7or9k9G+6AQBBNeaUKKOOTiKX6C1gSOR6+o7U/SIvo/r67wntlC295T1SVEPo6wvDlPU0TXSy2zDLPwrtw5l+vzFfPhS9PoEVeY4L00H98JLV9CQO6gfvine4DGfSJbgwTDp0hvy9Y6bQRKDCpG8B/5bMEyQ49/oV/5FUwILBduaDonS2LpAedsvpPiOODUGdyY4l0cnClkximOvt7IVVOpUhjgIfeBoS4zmxj+ZkAzUTfWuwn9A9zr7wUHb85cIjoKXm5Kr8sO4gb5o/hXRzdBWRjhhTAJpj9aZqWWldpO7l28F/0xHzfuB/YYcUNQP65ZfxMqJJnXUj2po4Sk0FvjWM5VjN8KCfNyxPOk9Qb+PQGgJFJmg=----ATTACHMENT:----MTYwODUxNjQ1NTU2NTAwMSA5ODI1Mjc1OTMyMDY1NDI1IDMzNjAzODY5NDUyNTk3NzE=