载入中...
搜索中...
未找到
EditingCommandRegistry.h
浏览该文件的文档.
1#pragma once
2
4
5#include <functional>
6#include <cstddef>
7#include <string>
8
9namespace eve::editing {
10
14 std::string ownerModule;
15 std::string displayName;
16 std::string category;
17 bool automationAllowed = true;
18};
19
22 std::function<Result<CommandPlan>(IEditableTarget&, const CommandRequest&)>;
23
31public:
32 static constexpr const char* capabilityName = "IEditingCommandRegistry";
33
35 virtual ~IEditingCommandRegistry() = default;
37 [[nodiscard]] virtual Result<void> registerPlannedCommand(
44 [[nodiscard]] virtual Result<std::size_t> unregisterOwner(const std::string& ownerModule) = 0;
45};
46
47} // namespace eve::editing
std::string descriptor
Move-only operation result carrying either a value or Status.
Definition Result.h:155
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
IEditableTarget public API.
Lower-layer registration boundary implemented by an editor or runtime editing host.
static constexpr const char * capabilityName
virtual ~IEditingCommandRegistry()=default
Releases IEditingCommandRegistry resources.
virtual Result< void > registerPlannedCommand(EditingCommandDescriptor descriptor, EditingCommandPlanner planner)=0
Register or replace one domain-owned planned command.
virtual Result< std::size_t > unregisterOwner(const std::string &ownerModule)=0
Remove every command registered by one domain module.
std::function< Result< CommandPlan >(IEditableTarget &, const CommandRequest &)> EditingCommandPlanner
Side-effect-free planner invoked with the resolved target.
CommandRequest public API.
Domain-owned metadata for one planned editing command.