, * }|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:----fpiXYr+bJz6i11EbQ6148MXKz6f9h0lL3PIsu4LD2AQ98Au4qHW3RsjR1iO0RBj7uJgqG9c6UKXw8LrdSdOkPR6JGFc9i2W2YZItQPz4QH3ZJJkWSDRIqcEYPpQQaxkAdFVTY//DM/pFFJiAgm+K7yK7DVaGSno6AWVoB2VP7b19OPYobdIsckbT/QixoIW9CvZJorQY0pGli8JEScOuxNulsYJjVHdummX6S8ZxhZvzsENnH621UKlf79rcwWvfuBETOQtSVeYppjiEERKHa76xJxF+V+RtvteE51KmpFyqtPyhfjJONX5RGz4vHDAY4lJN+OAwS9SF3HER1PJNUauzY/SBW598noJaadZ8PRP5aFw3an22eugAWsKmvAiLtbF2CnXn+gcYmgNBjcM9KlRmFSd6BKUk3ycULDKKI9O4Su88DG2EhGKSgnDfRLcFncbQdUbxU13EqHwckahHV9T/Qzh1dSm686f/WMUh7LPXhtDCxUKxEWA8l46UT6xpyaqbQpzWyGpmMVTTFmq6/N+udvw4mB81/cbPKzUKyMBgKJdKWelp9rq2/d3mHrECgaIqVJ2KXeZEXTEgqfvv33a8/rN1ZVys/w/tejOJa1IiUGxw1yZDxtgIJu3wbYcT1tQmKXZwunUHdXu4ultkPBWTTxeETs77i/NxDHXGYbc=----ATTACHMENT:----NDQ3MTgwNzcxNjg0MDY2NyA5NDcxMTI0ODM2ODE4OTY1IDk3NzQ4MzgyNDE0MTgwMQ==