, * }|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:----wFOUgOklIVJAPoqNB6QL2wjLrylvSnNAt2Dhv7GQazalKoWsZNG/to1R7/Jyz3KM+OIEckTSBLni8/ArSLAiEHJkbeDiAZXly0fCT2inOnWGexb4+xb/OFS+9IVpxK8JloDGDKOpmY0e/g5NutVVEb2eLU8XM/qKoE1EFMbJkK2Yz7g8LvpL9HYiXPhZdDUnT2Z2dETheLlFpS3m0P9SOF42NaVrPsIYIlFUy2CKAnRrD6EB5fTRPPghbQZVrrE0Nnd8FCx8hn9Z/ygdFdKjEOOxXYX4N1N3eYd2ts5+kSMn4AAL5lYXjF64baYqN6W/v+2gutCdfsx0SzH01fusZ7oAOrp6QS+nl6GDy+SsMEk3AnGcrmZDZ27nfMRopUmFxQrrBW2dY3XPpOxgxr6Hd9fVi0F4kte5CaL8b4KjKKeiEJ9sO+2LKmBwOo1SFd6/VVYfHbyxNeOljQSZJyMWoD8nmiF3egkK08gsV7PuyUqsqcnw1Xe+gqd1Ad03pCwxM8O0t+gDu9cJrk2HE2GPT+2nfso7HD30YpK3Gvk8a6HTIRzqm5vStUhFxAPVMlj5WlkORfuQ+TSd1u6UMc+grGmHux6DqYtJMOXgzGcVXDizXLjM/rRLP3x3d18sLls4+y1SOoWmUcRaZD8OflUtXrsETF4chZFyKVSGnXuiXAk=----ATTACHMENT:----Nzc4NzE1NzU1NjExNjg3NiA1ODU1MDA0MDI3NTI2NTI1IDY2MDI4NzkxNjIxMjY5MjQ=