载入中...
搜索中...
未找到
EditorDiagnostics.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
7
8#include <functional>
9#include <map>
10#include <mutex>
11#include <string>
12#include <vector>
13
14namespace eve::editor {
15
21
24public:
25 using Rule = std::function<std::vector<EditorDiagnostic>(const ValidationRequest&)>;
26
29
31 Result<void> registerRule(std::string owner, RuleId id, Rule rule);
33 std::size_t unregisterOwner(const std::string& owner);
35 std::vector<EditorDiagnostic> validate(const ValidationRequest& request) const;
36
37private:
38 struct RegisteredRule {
39 std::string owner;
40 Rule rule;
41 };
42 std::map<RuleId, RegisteredRule> rules_;
43};
44
47public:
49 void publish(std::string source, std::vector<EditorDiagnostic> diagnostics);
51 void clear(const std::string& source);
53 std::vector<EditorDiagnostic> snapshot() const;
54
55private:
56 mutable std::mutex mutex_;
57 std::map<std::string, std::vector<EditorDiagnostic>> channels_;
58};
59
60} // namespace eve::editor
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
const GltfImportRequest & request
const UnitySourceAsset & source
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
Deterministic owning value tree shared by authoring hosts.
Thread-safe diagnostic channels consumed uniformly by UI, scripts and MCP.
Registry of composable validation rules owned by extensions.
std::function< std::vector< EditorDiagnostic >(const ValidationRequest &)> Rule
Context supplied to project- and document-level validation rules.