, * }|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:----DOJStLfIdLC52MA3g2ERNeNWBZ2zIkWiJxp2jtOw3rmITG5loozLbqRYO7vo4yNBqk7pRg5lbJ71j46YTjjpPHTQSvOQZsyQ0BewQwo1WFizn7/IWb4oXpXxMPLHRzeYAWdroPLbLlLxaS/psVIm7kmknTwANey9LeKIggBozXBMCgX72tkGkR+QDADUkgxseFgZASTgM7+bK++NfKN4WQ5sVbH8pfmbqJiyllnNPgkIGFJgqy1JSoCnWC7WsZPoPHD0VV7jDuSf0n/+32s47jhhdbfQVT35X2Zi6U3uExqb5ZZ9UwDTMWC0baJPwPM7LE/oeMWjKScFYEBjbOHu3/ynIPKBETU36f5TiayhlSr0iJI81P43v8R+6ENkitByy9Sd2CN/wlhxAiYAs/JjU4YOkJR0Jd7l8RmlLBP0qXBkBaPc63/cnviCZm4B3xHindQ2drw8LV63MZ/y2A/9LdwQvbZRQT5v5+IS64YDbC60VOAVMm5O+RKn0G+0lx0yTpf1SrptJfy362YSEUf1ZduL4b6t6/sOoQjbR2JoOocKGmQ56yWbnChORDH2EXQvaqdcj6/+zaN2en14PhwjDbbGo4PLsu1Lw8+xXX145DQkuV2UoQO/38jKFdms03GPfOtXEkaFh9NPlGKx31N44PICDpSOhqXd8dfSy1+xf/s=----ATTACHMENT:----OTE3MDk4OTU3OTEwMzc5MyA1MDM3Nzg0NDk4ODMxNDU4IDQwMTU1MjUwMTg4MjExMjU=