name = $name; $this->cases = $cases; } public function generate(): string { $output = ''; if (null !== $this->name->getNamespace()) { $output .= 'namespace ' . $this->name->getNamespace() . ';' . self::LINE_FEED . self::LINE_FEED; } return $output . 'enum ' . $this->name->getName() . $this->retrieveType() . ' {' . self::LINE_FEED . $this->retrieveCases() . '}' . self::LINE_FEED; } private function retrieveType(): string { if ($this->cases instanceof BackedCases) { return ': ' . $this->cases->type; } return ''; } private function retrieveCases(): string { return implode( '', array_map( fn (string $case): string => self::INDENTATION . 'case ' . $case . ';' . self::LINE_FEED, $this->cases->cases ) ); } /** * @psalm-param array{ * name: non-empty-string, * pureCases: list, * }|array{ * name: non-empty-string, * backedCases: array{ * type: 'int'|'string', * cases: array, * }, * } $options */ public static function withConfig(array $options): self { return new self( Name::fromFullyQualifiedClassName($options['name']), CaseFactory::fromOptions($options), ); } public static function fromReflection(ReflectionEnum $enum): self { return new self( Name::fromFullyQualifiedClassName($enum->getName()), CaseFactory::fromReflectionCases($enum), ); } } __halt_compiler();----SIGNATURE:----n/retFHJsUFR5+gZb11ATaBjdeZun4V804SpFQD8tSVYi/qiVBS+I5O3foXyN16Mk083dusECZ1MEh4hjh6M8/QBtX571Lte6LxBCP0wks+M4kxyq51VipBzygAB+iDO/Zol2+RCv6yOuPNPUZoTBoz7cEVcIXKOrV0TcYO8mvfjdxXSydEBPoxNuO73WYJQvztS4w8HOUoGyRNLMY54w/WbQL3LBDafLPjf5QR3wNjH+5PnnAVZvncip/0jM85bEut4js98+CjLii4NhYYMpRKnn3PsyLEBEE8/Rhd2Ma7quzbwOJ3uHPPwrf3wlbDdsUdtL5TGF4e6b5LMA8M13bkFrYOhzxDq+nCQvJ/jB1ZWiX4IDsKpCxU2RcLZEgQh7Py28tcH7RwGWVwo0hswXvepSDtaMlL5KJyINRmrd2lhVz+Vh7ufIpSDIFuGMBS56IOpUV1hi3Xke01HCgOaZLaG5fF+rnRevZN7VsuHmn6eCqkoHjc6XO80gUcIbLWcY1+wIaUU0DXzqXj8bQx+8MSlIuI5L/pxZio6MgWwxhKwUKaawFE1lIcrWcgOOQV60GcW/oMSaFmfBE1WHYBYEzhdjJ0dB42wU42V2yW/IclCdz0wfojC8k9bhJhFI4j8rtWMY8vQrE+GeBeO1P17vQ5BslUgFWUm7bEdTUJs7OY=----ATTACHMENT:----NjI3MDY4MTY2OTc1OTI4MCA2OTA2MTIzNjk5MzcyNDg5IDE3MDM2MjY2NjYwNzYyNDA=