18 public const FLAG_FORCE_COLLAPSE_ENUM = 0x1;
19 public const FLAG_HAS_ENUM_CONSTRAINT = 0x2;
21 public string $paramName;
22 public int $paramType;
23 public bool $isOptional;
24 public int $flags = 0;
26 public ?
string $postfix =
null;
28 private static function baseline(
string $name,
int $type,
int $flags,
bool $optional) :
self{
30 $result->paramName = $name;
31 $result->paramType = $type;
32 $result->flags = $flags;
33 $result->isOptional = $optional;
37 public static function standard(
string $name,
int $type,
int $flags = 0,
bool $optional =
false) :
self{
38 return self::baseline($name, $type, $flags, $optional);
41 public static function postfixed(
string $name,
string $postfix,
int $flags = 0,
bool $optional =
false) :
self{
42 $result = self::baseline($name, 0, $flags, $optional);
43 $result->postfix = $postfix;
47 public static function enum(
string $name,
CommandHardEnum $enum,
int $flags,
bool $optional =
false) :
self{
48 $result = self::baseline($name, 0, $flags, $optional);
49 $result->enum = $enum;
53 public static function softEnum(
string $name,
CommandSoftEnum $enum,
int $flags,
bool $optional =
false) :
self{
54 $result = self::baseline($name, 0, $flags, $optional);
55 $result->enum = $enum;
64 $result->paramName = $paramName;
65 $result->paramType = $paramType;
66 $result->isOptional = $isOptional;
67 $result->flags = $flags;
68 $result->enum = $enum;
69 $result->postfix = $postfix;