1#ifndef SOURCEMETA_CORE_JSONSCHEMA_H_
2#define SOURCEMETA_CORE_JSONSCHEMA_H_
4#ifndef SOURCEMETA_CORE_JSONSCHEMA_EXPORT
5#include <sourcemeta/core/jsonschema_export.h>
8#include <sourcemeta/core/json.h>
9#include <sourcemeta/core/jsonpointer.h>
12#include <sourcemeta/core/jsonschema_error.h>
13#include <sourcemeta/core/jsonschema_frame.h>
14#include <sourcemeta/core/jsonschema_types.h>
42namespace sourcemeta::core {
48SOURCEMETA_CORE_JSONSCHEMA_EXPORT
53SOURCEMETA_CORE_JSONSCHEMA_EXPORT
59SOURCEMETA_CORE_JSONSCHEMA_EXPORT
64SOURCEMETA_CORE_JSONSCHEMA_EXPORT
92SOURCEMETA_CORE_JSONSCHEMA_EXPORT
94 std::string_view new_identifier,
96 std::string_view default_dialect =
"") -> void;
112SOURCEMETA_CORE_JSONSCHEMA_EXPORT
120SOURCEMETA_CORE_JSONSCHEMA_EXPORT
122 std::string_view new_identifier,
157SOURCEMETA_CORE_JSONSCHEMA_EXPORT
171 using Callback = std::function<void(std::string_view,
175 enum class Mode : std::uint8_t {
260SOURCEMETA_CORE_JSONSCHEMA_EXPORT
263 std::string_view default_dialect =
"",
264 std::string_view default_id =
"",
318SOURCEMETA_CORE_JSONSCHEMA_EXPORT
321 std::string_view default_dialect =
"",
322 std::string_view default_id =
"",
const WeakPointer EMPTY_WEAK_POINTER
Definition jsonpointer.h:54
GenericPointer< std::reference_wrapper< const std::string >, PropertyHashJSON< JSON::String > > WeakPointer
Definition jsonpointer.h:44
std::vector< sourcemeta::core::WeakPointer > Paths
A list of paths to frame within a schema wrapper.
Definition jsonschema_frame.h:164
Callback callback
Definition jsonschema.h:208
Mode
The strategies that the bundling process can follow.
Definition jsonschema.h:175
@ NonOfficialMetaschemas
Definition jsonschema.h:179
@ References
Definition jsonschema.h:182
SchemaFrame::Paths paths
The paths to bundle within a schema wrapper.
Definition jsonschema.h:190
std::function< void(std::string_view, const sourcemeta::core::WeakPointer &)> Callback
Definition jsonschema.h:171
std::string_view default_base
Definition jsonschema.h:195
Mode mode
The strategy to follow.
Definition jsonschema.h:186
std::uint64_t max_locations
Definition jsonschema.h:204
std::optional< sourcemeta::core::Pointer > default_container
Where to embed what bundling pulls in.
Definition jsonschema.h:188
SOURCEMETA_CORE_JSONSCHEMA_EXPORT auto schema_identifier_keyword(const SchemaBaseDialect base_dialect) -> std::string_view
SOURCEMETA_CORE_JSONSCHEMA_EXPORT auto schema_resolver(const std::string_view identifier) -> SchemaResolverResult
SOURCEMETA_CORE_JSONSCHEMA_EXPORT auto schema_format(sourcemeta::core::JSON &schema, const SchemaFrame &frame) -> void
SOURCEMETA_CORE_JSONSCHEMA_EXPORT auto schema_reidentify(sourcemeta::core::JSON &schema, std::string_view new_identifier, const SchemaResolver &resolver, std::string_view default_dialect="") -> void
sourcemeta::core::OwnedOrReference< sourcemeta::core::JSON > SchemaResolverResult
Definition jsonschema_types.h:24
SOURCEMETA_CORE_JSONSCHEMA_EXPORT auto schema_walker(const std::string_view keyword, const SchemaVocabularies &vocabularies) -> const SchemaWalkerResult &
SOURCEMETA_CORE_JSONSCHEMA_EXPORT auto schema_is_official(const std::string_view identifier) noexcept -> bool
SOURCEMETA_CORE_JSONSCHEMA_EXPORT auto schema_is_known(const std::string_view identifier) noexcept -> bool
std::function< SchemaResolverResult(std::string_view)> SchemaResolver
Definition jsonschema_types.h:41
std::function< const SchemaWalkerResult &( std::string_view, const SchemaVocabularies &)> SchemaWalker
Definition jsonschema_types.h:254
SchemaBaseDialect
Definition jsonschema_types.h:54
SOURCEMETA_CORE_JSONSCHEMA_EXPORT auto schema_bundle(sourcemeta::core::JSON &schema, const SchemaWalker &walker, const SchemaResolver &resolver, std::string_view default_dialect="", std::string_view default_id="", const SchemaBundleOptions &options={}) -> void