载入中...
搜索中...
未找到
SchemaDocumentation.cpp
浏览该文件的文档.
37 if (node.elementType != ValueType::Any) result.emplace("elementType", eve::Value(valueTypeName(node.elementType)));
50 if (!node.discriminator.empty()) result.emplace("discriminator", eve::Value(node.discriminator));
53 for (const auto& [value, target] : node.discriminatorMapping) mapping.emplace(value, eve::Value(target));
84void appendFieldDocumentation(std::ostringstream& output, const FieldDefinition& field, const std::string& parentPath,
87 output << std::string(static_cast<size_t>(depth), ' ') << "- `" << markdownEscape(path) << "` — `"
94 if (!field.discriminator.empty()) output << ", discriminator=`" << markdownEscape(field.discriminator) << '`';
98 for (const auto& nested : field.objectSchema->fields) appendFieldDocumentation(output, nested, path, depth + 2);
109eve::Result<std::string> SchemaRegistry::generateDocumentation(const std::string& schemaId, int schemaVersion) {
118 output << (schema->additionalProperties ? "Unknown object fields: allow\n\n" : "Unknown object fields: reject\n\n");
128eve::Result<std::string> SchemaRegistry::generateBindingContract(const std::string& schemaId, int schemaVersion) {
static Diagnostic error(DiagnosticCode code, std::string message, std::string path={}, DiagnosticDetails details={}, std::string source={})
Construct an error diagnostic with the standard error severity.
Definition Diagnostic.h:125
static Result failure(Status status)
Construct a failed result from a structured status.
Definition Result.h:175
Result< std::string > toJson() const
Serialize this value as deterministic compact JSON.
Definition Value.cpp:67
static eve::Result< std::string > generateDocumentation(const std::string &schemaId, int schemaVersion)
Produce stable Markdown for one exact registered schema.
Definition SchemaDocumentation.cpp:109
static const SchemaDefinition * resolve(const std::string &schemaId, int schemaVersion)
Resolves one exact (schemaId, schemaVersion) pair, or nullptr.
Definition SchemaRegistry.cpp:879
static eve::Result< std::string > generateBindingContract(const std::string &schemaId, int schemaVersion)
Produce a stable JSON binding contract for one exact schema.
Definition SchemaDocumentation.cpp:128
std::variant< std::monostate, std::int64_t, double, std::string, bool > Value
Definition Database.h:26
const EditorValue * field(const EditorValue &value, const char *name)
Definition RoadNetworkEditTarget.cpp:15
Definition DefinitionForm.h:8
const char * valueTypeName(ValueType type)
Returns the stable lowercase name of a schema value type.
Definition SchemaRegistry.cpp:808
@ UnknownVersion