3#include "ll/api/base/Meta.h"
4#include "ll/api/command/Optional.h"
5#include "ll/api/command/ParamTraits.h"
6#include "ll/api/command/runtime/RuntimeEnum.h"
10using ParamKindType = size_t;
14enum Kind : ParamKindType {
45using ParamKindList = meta::TypeList<
53 CommandSelector<Actor>,
54 CommandSelector<Player>,
62 std::vector<BlockStateCommandParam>,
64 ActorDefinitionIdentifier
const*,
65 std::unique_ptr<::Command>,
70 WildcardCommandSelector<Actor>
76 using Optional<ParamKindList::to<std::variant>>::Optional;
78 ParamKindType index()
const {
return mValue.index(); }
79 bool hold(ParamKindType kind)
const {
return has_value() && kind == index(); }
81 decltype(
auto) get()
const {
82 return std::get<N>(value());
Definition ParamKind.h:74
Definition RuntimeEnum.h:9
Definition RuntimeEnum.h:13