LeviLamina
Loading...
Searching...
No Matches
RuntimeOverload.h
1#pragma once
2
3#include "ll/api/command/OverloadData.h"
4#include "ll/api/command/runtime/ParamKind.h"
5#include "ll/api/command/runtime/RuntimeCommand.h"
6
7namespace ll::command {
8class RuntimeOverload : private OverloadData {
9 friend CommandHandle;
10
11 struct Impl;
12 std::unique_ptr<Impl> impl;
13
14 RuntimeOverload(CommandHandle&, std::weak_ptr<mod::Mod> mod);
15
16 void addParam(std::string_view name, ParamKindType kind, bool optional);
17
18public:
19 LLNDAPI RuntimeOverload& optional(std::string_view name, ParamKindType kind);
20
21 LLNDAPI RuntimeOverload& required(std::string_view name, ParamKindType kind);
22
23 LLNDAPI RuntimeOverload& optional(std::string_view name, ParamKindType enumKind, std::string_view enumName);
24
25 LLNDAPI RuntimeOverload& required(std::string_view name, ParamKindType enumKind, std::string_view enumName);
26
27 LLNDAPI RuntimeOverload& text(std::string_view text);
28
29 LLNDAPI RuntimeOverload& postfix(std::string_view postfix);
30
31 LLNDAPI RuntimeOverload& option(CommandParameterOption option);
32
33 LLNDAPI RuntimeOverload& deoption(CommandParameterOption option);
34
35 LLAPI void execute(RuntimeCommand::Fn);
36
37 LLAPI RuntimeOverload(RuntimeOverload&&);
38 LLAPI ~RuntimeOverload();
39};
40} // namespace ll::command