*/ protected array $enum; /** * @param array $enum */ public function __construct( array $enum ) { $this->type = self::TYPE; $this->enum = $enum; } /** * Creates an instance from an array. * * @param array{ * type: 'string', * enum: array * } $data * @phpstan-param array $data * @return self */ public static function fromArray(array $data): self { self::assertRequired($data, ['enum']); return new self( self::asStringArray($data['enum']) ); } /** * Converts the instance to an array. * * @return array */ public function toArray(): array { $result = []; $result['type'] = $this->type; $result['enum'] = $this->enum; return $result; } /** * @return 'string' */ public function getType(): string { return $this->type; } /** * @return array */ public function getEnum(): array { return $this->enum; } }