$generatorClass * @phpstan-param \Closure(string) : ?InvalidGeneratorOptionsException $presetValidator */ public function __construct( private string $generatorClass, private \Closure $presetValidator, private readonly bool $fast ){} /** @phpstan-return class-string */ public function getGeneratorClass() : string{ return $this->generatorClass; } public function isFast() : bool{ return $this->fast; } /** * @throws InvalidGeneratorOptionsException */ public function validateGeneratorOptions(string $generatorOptions) : void{ if(($exception = ($this->presetValidator)($generatorOptions)) !== null){ throw $exception; } } }