18class CommandParameterData {
21 using CustomStorageGetFn =
void* (*)(
::Command*,
int);
23 using CustomStorageIsSetFn =
bool* (*)(
::Command*,
int);
31 ::std::vector<::std::string>&
40 char const* mEnumNameOrPostfix;
42 char const* mChainedSubcommand;
44 ::CommandParameterDataType mParamType;
48 ::CommandParameterOption mOptions;
49 ::ll::TypedStorage<8, 8,
void* (*)(
::Command*,
int)> mValueGetFn{};
50 ::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
75 LLNDAPI
bool operator==(CommandParameterData
const& other)
const;
77 CommandParameterData(CommandParameterData
const&) =
default;
78 CommandParameterData& operator=(CommandParameterData
const&) =
default;