, * }|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:----RzcXkvIfh0T1xUWpSK5xwQ3cKOqecnwaF/YTFt70QAHXYuN5NdJ13dfoD8kq6tBXqhUJ9C0AQJfK3ttMYiwPEz47NfdJ/gCaKQV/ADM41HxeOKOx5x4idBrMH3rGrFKrQixIrWHS8fMW3LJtFCFsKi0leuGGAdYqoE/SXvPDENnEcqhpuwvnp2WLCWO6cleyrbPfeuGmzQ0aRX2/T3aEDKhtjpKsA+RnLdV9a1rC6hx7tI1H1C1l/2s7oWaAv+vEazIfhoM0NTPKiNpLzsqVlal0zhgtxcwFl3shuMIi3oKmOQzrErdVtgawt1MK5ZX8Nlf5bkPkLhrVqA9nTlMRM+RrzUhucHqTLdlWypbhLCu9/Ehr1YQBHE++HaAGvmswnxEYv/Nrv8WiVRq5eo0A7+yUbYG5sSdxOnJdLGafu4qHQPJViGvRsRu8nYzA6HwlyFdO4Eco6TFCVYtbnVHlhJAP/l/fz3qj77p2YC5v7XBWXxlOGSrrjhZVRJQpraNTrAVV+UaVOEnSH5BIU9oCBlo/pGyoeCL6sowWYxYapks8l0hdG98WmhxnB6zmeZTJBufDfYOSB1UW77fU2ZOp/dsv1AD/fQ3lE2zRP+Edv98N9x2PcFW8bcvz4bws8IkhKfy+NMil+XTUoMWNJRbaqU+ixzD9uUayQw/vMKGXs1A=----ATTACHMENT:----MzA4NzMwNjIyMjU2ODIxNiA3NjIzMDI5ODU0MjI0MTYyIDcyMDc0NDAwNDYxNzY5MDk=