final public function setEnum()

in src/uri-patterns/UriBuilderSetters.php [24:46]


  final public function setEnum<T>(
    /* HH_FIXME[2053] */ classname<\HH\BuiltinEnum<T>> $class,
    string $name,
    T $value,
  ): this {
    $spec = $this->parameters[$name] ?? null;
    if ($spec && $spec is EnumRequestParameter<_>) {
      // Null case is handled by standard checks in setValue()
      $expected_class = $spec->getEnumName();
      invariant(
        $class === $expected_class,
        'Parameter "%s" is a %s, not a %s',
        $name,
        $expected_class,
        $class,
      );
    }
    return $this->setValue(
      EnumRequestParameter::class,
      $name,
      $class::assert($value),
    );
  }