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:----J4qkuOX3Y+8TH3QNe54U5F9fgyv/rI45prw/0AslCOPkZi1cWetRyznYsuBh1WWruLC0SCDmjU/IuREWSVv2+5hHrAqou66Eftn9zj4mbCAHY2Sj9rtR+evf9M5tHoiGmLLhrvV1Sn4dCiVsRFOeC3B2nhKAFNncoMYcWP04D+GMnh/TVckjB8PfQV3WA0gibBnmShsz8Gfi5NtH9mETRwbLkv4gQUOH98jR/Hbi3OV3QyRddB2QAKXglWhY88E+cuHsNEeNPd15V3HlDRLHql63uayWYaljAJeN0uU+dWg15zmSZ1qaEGEDSVfQu8t/YrR3heib4V4i9mPfr07aoXjDKmQIG8TL3sAo9JiRnzxQc0aJ2HoaPt7R8UQ37uK7khXY/7nE9EGjaQm1JIChEIjyZOjn+Ye+EG1Xr2r55a8nzpuxWtwkBO/Qm1AlkRLghA+FdgUwPYPcICWvxRxJ22ReqCEJLrvM+fOZvBWTA79dz1iAMpTd37wUTKsgwWHgej8lJ7Tshr6RUaSI5ZXXOfBjnuU1EG9B3jBW2AjY7b1aDE06YvM4EFApxvSrfWd0U/+qMCupib9nSEHumCcd34js+NOfGfNZJrlevTmCZQVrBXJWwZPMqXjo+PXXUgjNRKP18vwTIJyiVMLa5ffCWLzrYKEpI7G8RT7WCoM+HaE=----ATTACHMENT:----NDQ0NzE2NzIyMTcyOTkyIDM4OTM1MzA4MDgwNzQ2NzUgOTEyMjg2NzA2NDU4NzQ5Nw==