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:----DsGiircSH42jOWZVn0+QNsZ7xjhoh6F8GSE8pqkcnh7O6DDszIJs9J44RvOhvKUaUDBYqeAsP6iywXh8rgEm74U3XT71HaGK4xAIzDFQ85qkmuJfpHR1fB71y9vNZqX9ew0SMmPL1/Q2jZfA5oRRVqiTV+NR1F7hBWluDSnnPUPgEcA7bbFga9dn9YpF1vV4jxymrA002tmaho9wJKdeG6ZDR0b4UsHOnrhK+DA9nZoJY9MgGnb+dmpUI3Gy97zdt1NpdTtO3Ag+jDwI4R7jrvCdHzlAKtC8sbvSMBCK+98NEg06WnmV1w10AwECfERN0aeJq0t3dvAcLu99n9rtTgLjrm63AbVANH84tWSlDWuHEnbGcs2C4XG4D+EQUQcEusxQkZ5o6GwCzR38ddp16sVAkriI001slY2XWVu52bxh/QZ9jLD4GRyZcQYfsgUHDOj35LKmSkxRZoTB/RgPpEtuHCuw251BYPPcS1BKBpAu/V6IIfyxB+Lln+0KIym5GdEGKP0OJjLrUb+ruQ6TJRQoXYc/osWtV3/VGOw0kdnUKG4iCas3lYYeXt9cprDtxXp0Hzf28uX3jxBtCp2lRjAU8L0kQuPoXeUXDMA9vWmbZwHg97Mwz1PxjjHNjAcaabVP5B+wnUV+GF0rvKNlb/dcNHz+To8e4mFXOn8Upp8=----ATTACHMENT:----NTYzMjkzOTY1MTA5NDUyMSA0NTI5NzM0Nzc5MDEwODkxIDUwMzY1MDU5ODYzNDA4NDU=