载入中...
搜索中...
未找到
EvaManifest.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
10#include "common/ResourceRef.h"
12#include "common/Value.h"
13
14#include <map>
15#include <string>
16#include <vector>
17
18namespace eve::asset {
19
21enum class EvaDependencyKind : std::uint8_t {
24 Build,
25 Editor,
26 Source,
28};
29
31[[nodiscard]] std::string_view evaDependencyKindName(EvaDependencyKind kind) noexcept;
32
36 std::string type;
38 std::string definition;
39 std::string contentHash;
40 std::vector<std::string> tags;
41};
42
54
63 static constexpr std::string_view kSchema = "eve.asset-archive";
64 static constexpr std::uint64_t kVersion = 1;
65
67 std::string packageName;
68 std::string packageVersion;
69 std::vector<EvaAssetEntry> assets;
70 std::vector<EvaDependency> dependencies;
71 std::map<std::string, AssetRef> entrypoints;
74};
75
83[[nodiscard]] EVENGINE_API_FOUNDATION Result<EvaManifest> parseEvaManifest(std::string_view json);
84
92
93} // namespace eve::asset
#define EVENGINE_API_FOUNDATION
每个链接组(link group)各自的导出宏。
Definition Export.h:106
TokenKind kind
Strong asset, definition, object and generic resource references.
Persistent data-contract version identity.
Owning, renderer-independent dynamic values.
Stable asset identity backed by PersistentId.
Definition ResourceRef.h:53
Move-only operation result carrying either a value or Status.
Definition Result.h:155
std::map< std::string, Value > Object
Definition Value.h:34
Id128 public API.
Definition Identity.h:112
std::string_view evaDependencyKindName(EvaDependencyKind kind) noexcept
Return the stable manifest spelling for a dependency role.
Result< EvaManifest > parseEvaManifest(std::string_view json)
Parse and validate canonical .eva manifest JSON.
EvaDependencyKind
Dependency role recorded by a source asset archive.
Definition EvaManifest.h:21
Result< std::string > serializeEvaManifest(const EvaManifest &manifest)
Serialize a validated manifest as deterministic compact JSON.
One typed asset definition in an .eva archive.
Definition EvaManifest.h:34
std::vector< std::string > tags
Definition EvaManifest.h:40
SchemaVersion schemaVersion
Definition EvaManifest.h:37
One directed dependency between stable asset identities.
Definition EvaManifest.h:44
Value::Object fallback
Required observable behavior when a runtime-optional target is unavailable.
Definition EvaManifest.h:52
EvaDependencyKind kind
Definition EvaManifest.h:47
Validated, owning .eva manifest.
Definition EvaManifest.h:62
std::vector< EvaAssetEntry > assets
Definition EvaManifest.h:69
std::vector< EvaDependency > dependencies
Definition EvaManifest.h:70
static constexpr std::string_view kSchema
Definition EvaManifest.h:63
std::string packageVersion
Definition EvaManifest.h:68
static constexpr std::uint64_t kVersion
Definition EvaManifest.h:64
Value::Object extensions
Definition EvaManifest.h:73
Value::Object provenance
Definition EvaManifest.h:72
std::map< std::string, AssetRef > entrypoints
Definition EvaManifest.h:71