载入中...
搜索中...
未找到
SchemaTypes.h
浏览该文件的文档.
1#pragma once
2
3#include "common/Export.h"
4
5#include <cstddef>
6#include <map>
7#include <memory>
8#include <optional>
9#include <ostream>
10#include <string>
11#include <vector>
12
13namespace eve::schema {
14
17
20
23
25inline std::ostream& operator<<(std::ostream& stream, SchemaRegistrationStatus status) {
26 return stream << schemaRegistrationStatusName(status);
27}
28
30EVENGINE_API_FOUNDATION std::optional<ValueType> valueTypeFromString(const std::string& name);
31
34
35struct SchemaDefinition;
36
49 ValueType type = ValueType::Any;
51 ValueType elementType = ValueType::Any;
53 std::string ref;
55 int refVersion = 0;
57 std::shared_ptr<const SchemaDefinition> objectSchema;
59 std::shared_ptr<const SchemaNode> itemSchema;
61 std::vector<SchemaNode> variants;
63 std::string discriminator;
65 std::map<std::string, std::string> discriminatorMapping;
67 std::vector<std::string> enumValues;
68 std::optional<double> minimum;
69 std::optional<double> maximum;
70 std::optional<int> minLength;
71 std::optional<int> maxLength;
72 std::optional<int> minItems;
73 std::optional<int> maxItems;
74};
75
78 std::string name;
79 bool required = false;
80 std::string title;
81 std::string description;
83 std::string reference;
84 std::string defaultJson;
85};
86
94 std::string id;
95 int version = 1;
96 std::string title;
97 std::string description;
98 bool additionalProperties = true;
99 std::vector<FieldDefinition> fields;
100};
101
104 std::string path;
105 std::string code;
106 std::string message;
107};
108
109} // namespace eve::schema
#define EVENGINE_API_FOUNDATION_INLINE
仅供"只有内联成员"的类型使用的组宏:拥有者 dllexport,消费方不导入。
Definition Export.h:170
#define EVENGINE_API_FOUNDATION
每个链接组(link group)各自的导出宏。
Definition Export.h:106
wgpu::PopErrorScopeStatus status
bool required
std::string name
std::ostream & operator<<(std::ostream &stream, SchemaRegistrationStatus status)
Writes the stable schema-registration status name.
Definition SchemaTypes.h:25
std::optional< ValueType > valueTypeFromString(const std::string &name)
Converts a stable schema type name to its enum value.
SchemaRegistrationStatus
Outcome of an exact schema-version registration.
Definition SchemaTypes.h:19
const char * valueTypeName(ValueType type)
Returns the stable lowercase name of a schema value type.
ValueType
JSON-compatible value kinds understood by a schema field.
Definition SchemaTypes.h:16
const char * schemaRegistrationStatusName(SchemaRegistrationStatus status)
Returns the stable lowercase name of a registration outcome.
Metadata and validation constraints for one object member.
Definition SchemaTypes.h:77
std::string reference
Legacy display/category reference; use ref for schema refs.
Definition SchemaTypes.h:83
Versioned runtime schema for a JSON object.
Definition SchemaTypes.h:93
std::vector< FieldDefinition > fields
Definition SchemaTypes.h:99
Recursive node in the deliberately small Eve Schema language.
Definition SchemaTypes.h:47
std::map< std::string, std::string > discriminatorMapping
Discriminator value to ref or zero-based variant index.
Definition SchemaTypes.h:65
std::string ref
Whole-schema reference, for example combat:damage.
Definition SchemaTypes.h:53
std::vector< std::string > enumValues
String enum values accepted by this node.
Definition SchemaTypes.h:67
std::string discriminator
Object member used to select a union alternative.
Definition SchemaTypes.h:63
std::vector< SchemaNode > variants
Union alternatives; at least one alternative is required.
Definition SchemaTypes.h:61
std::optional< double > maximum
Definition SchemaTypes.h:69
std::optional< int > minItems
Definition SchemaTypes.h:72
std::shared_ptr< const SchemaNode > itemSchema
Recursive schema for every array item.
Definition SchemaTypes.h:59
std::optional< int > maxLength
Definition SchemaTypes.h:71
std::optional< double > minimum
Definition SchemaTypes.h:68
std::optional< int > minLength
Definition SchemaTypes.h:70
std::shared_ptr< const SchemaDefinition > objectSchema
Inline object shape for an object node.
Definition SchemaTypes.h:57
std::optional< int > maxItems
Definition SchemaTypes.h:73
One machine-readable validation failure.