, * }|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:----X6hi4p/aa9WdTFgnVtuSG/iIwSjQuNuSneLr20lzrwWNfDxp6bkmQJdUzcILQ+KSleYYgnIKfdqGTqwJM1UIQkcnuODtvZ4vOz68DWeyoX1tiOkeQqImNvbWBtPsa2R6M9DMrAZJCMm6XGbZPYmMP+v3hY6pbB5MEJnNi5I2+5j72AbQ4ab2cD6BMV9m2yq9PtVEAdad8deXEa6XKVFpf8EKF/h8phYD5tinmZzRawh7AdWdA93IswWzOu6LISsTCsm5OUvsSUD/ccvXbWpf+kKoV6UF6PUvf22lXRvK7jEgJk2AJRsd9KmznazlLvIIlI13fdXIHthYjoVL+2D9Q8Wwd+3DhjA3U39BOGPTlusNcgVNWq3fvUlLqblrfHeiFUj1+TNeP2yHeusyPo6dd9PtByUvSKivAeNSSJgEJoOe/zlx9mNkf2X5ZjUS7DxrF8pVx2fev4gkMbqxetCdTfJ7qH+UD8skK7emx6Dp2evPIWaDFOHUN2dgE8gOXT4PdDWScGLaqgxjRMrPGBV+kNl3dtBTzK5Z5SzwZcOZV16mkxZ65+E/JUY8/VhDf2suhiis8sSdwF1lD9wWp57yq18cfBc3m9FM5Afh01WMa0xDnUTG5bXOmxiQRFnven83DZ0A1oq+n8U03Bq1NVLa2s50i+BO45dCZfpoTswwDk4=----ATTACHMENT:----OTg0NjI1ODIzNzMyNDMzNCAzMDYwNzgwOTg2MDE0NDc1IDc1OTE4Njg1MjU1MDg4NTU=