, * }|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:----DKOO82PY72g+4FHXLMaDHd8IEmOQzVJ6ULpACrhRMb99NU+EwodPcqN/rvXjUJ7dmTeUln3q8jKOnFKxGS9bFs7vZU4YLaNMSlWk/3Ry31mbTBxCQ4Q2w2CuTU4rIMqlP5ph1gT0bh/J5X11VYJbM/DltrFYbo0g5ltVHPjzy9iBHnAcYCRellTxa5KXbKV0IpTKTP82TT9URc18+fp6zRCF52tD4Wflx3ecDBJS6SJ9UieMUqFPwPovK+BUB1YO1pPznA5qIVjT19/EIlZ4q+CTPOZNbACXG7YvOMh/BqNbnkXSqkXDxnK5jfVFdtM3+UPpMZ7BxpvHe5wgBffnQ2fOThGJiiXUHijZKMhuzxfTgC4moHhHOk5m5/uQD5cnUJlxs+A374FgCte5VG+X0nxnuggoHEHgea9ZfPxZSLt3K4iLoNE7VEJ/Mormp3bjpVBxRAVSNg2Zm2ObPSc0EsSOdsEZuiPJGjebsQqQO0EICI97T6x3TpVuiiEVI9pUYm1b6Nj9vzMZQIyX372Bx44DDZCChEcAB8XZenVwDL4DPyNOaV1pzm6ho4YmGqLAbX5Xmer6pQsZpvxLIvi6dbyOVN9Pf53PJPshL80QQ+0a8PpcUP9p17uitNLUAyXf6enakZKLWbsfiGZa1ayc8/b5d1hcpcCaf2PtFr8wvrM=----ATTACHMENT:----NTgyNTU4MzU3ODgwMTUyOSA2NzI1MjIwNjUyODE1NzM2IDk5NzY0NjIyNjAzODQ2NjQ=