18class CommandParameterData {
21 using CustomStorageGetFn =
void* (*)(
::Command*,
int);
23 using CustomStorageIsSetFn =
bool* (*)(
::Command*,
int);
31 ::std::vector<::std::string>&
39 ParseFunction mParseOverride;
41 char const* mEnumNameOrPostfix;
43 char const* mChainedSubcommand;
45 ::CommandParameterDataType mParamType;
49 ::CommandParameterOption mOptions;
50 ::ll::TypedStorage<8, 8,
void* (*)(
::Command*,
int)> mValueGetFn{};
51 ::ll::TypedStorage<8, 8,
bool* (*)(
::Command*,
int)> mValueIsSetFn{};
55 void addOptions(::CommandParameterOption option) {
56 using T = std::underlying_type_t<::CommandParameterOption>;
57 mOptions =
static_cast<::CommandParameterOption
>((T)option | (T)mOptions);
60 CommandParameterData() =
default;
62 LLNDAPI CommandParameterData(
66 ::CommandParameterDataType type,
67 char const* enumNameOrPostfix,
72 CommandParameterOption options,
76 LLNDAPI
bool operator==(CommandParameterData
const& other)
const;
78 CommandParameterData(CommandParameterData
const&) =
default;
79 CommandParameterData& operator=(CommandParameterData
const&) =
default;