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:----KuZ2+z0hobQrkY8U8XghHoWconfs6T065j5gs1A9NGg/tnSr7nCq05SHwn5UYhQHDMgoF0COr+XKfAm8zUEsSzL2CQqciz2Zlzl8gfhZ0KHvvhBMRQ7aKvLFHGsiQ3m04t3XFXVuW1qlC5Ne9oKUuJlj9juncZpc8t4FcnHfu32la0VVZExlbspakoUk3bitklORsvvBObC2Kq8KLs0zUjaABsSbOXMAsWfePfxqhTM6ZGyNXUVnAxX+CCtT3K2xAdMgyoi3RUW6KJ1d+ah5j2agq0leKnEdX2iS0+WRINBl3IqH/BEPFZcmTVIntHphjSmixpNIQT32hzr6tYlzozC0M8CcYX0ZMvn+kr9VC6Qaq8dwyhZ9uxmE8ligt1kZhUtY5cO8tlv0MAVnIUT+CMwOGn2HUzIBUZYssXFxboif9G0wLe2Pz6yHFQ5b+CFX443BSKUAMRTk2PGUQVCHvfgY5/63rlBrbDPZHFeQhTBkdxA4MMWIL73B4Gghj77UqEGu7nOaqq/ukkpjDD9843M7e1oekA/ADrSxFeAPrhoDbXawhSDpHU7OyVlxcFU/1nNS1cfXcnm9v6FffcoylOaKgoVCDhfq8YdS4sv907kPaqW6/24Mo9PHTGhuF84NQ57vt+qFTDVZHxfxpqcfPT5H6xOHas6FGcqZW0P8T5c=----ATTACHMENT:----OTgzNzgwNDMxOTQyNDQ4IDM0MDM0OTU0MTEwMzc2OTIgMzA4NDYxNjcxOTM4MDU0MA==