, * }|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:----n4wmhZCsuZryruO/iEklJMHDCxoKT7UfUXugq1AYEnkprL8Z0M8CPMzUPFUIJpaTtm2e9i2Fyg1qcqB56CFhyjnyQry8KxNIalyxgV46IUs4Q49/EH3m1jwzd0ZvCBxx8ZkJcOSttuNlGOseFc+ILf/hYsUOkhNVoofTQ9u8B2m5U6r10hcStbJX0sOlY627Z2qcZUeI0uz7xGIlYU7+EASNhxjbvDQ024vZ0HUsxM2kC2y4i1bPgjtAIPKp7l2P2o5UBqPtR+X3yW8hqVXfXQTaDvHFBReoIm031eRhKssIb2LU9aYydfnUTmALPXrdpvgYINAjddQeGQHGghg6dHOaYi8XH2k9iVhKP26sScG3YqtTfknhidSPKMXXay4h4qwjjrnoyNE8X0XTaRqI/ZAAVhBc4SB6820uHVyu56XPDjAHh/9JB/aBUBKBYE0ePWh+noFK4zs+FQ0YqTWTdrcUNeIhzq7uzwOjgK4y/75zAcjH/SCKx/Zn00YLs1gzF48dIC/v1ZHCNLXGD5zxhLKiBA3QsE2BqUkQlbowTqrPFvy+WkfZJ/qdyExyeJuVYWfbcBYcfjs5gE4mJ+z4Fl7BjhBZNqqYLRSmcWxaF4v41FkPjX7gN9RyR36Z3eOZ/kxznmtVbCNULhOv5OVIegAODzFp8z1ZymC56ozckNk=----ATTACHMENT:----Mjk2MDQ0MTI3NzQzNTUxNyA2NTM4MDIxMjY4ODIxNjk3IDk2MTkzMTkzNjc5MDI2ODU=