Sourcemeta Core 0.0.0
Loading...
Searching...
No Matches
jsonschema.h
1#ifndef SOURCEMETA_CORE_JSONSCHEMA_H_
2#define SOURCEMETA_CORE_JSONSCHEMA_H_
3
4#ifndef SOURCEMETA_CORE_JSONSCHEMA_EXPORT
5#include <sourcemeta/core/jsonschema_export.h>
6#endif
7
8#include <sourcemeta/core/json.h>
9#include <sourcemeta/core/jsonpointer.h>
10
11// NOLINTBEGIN(misc-include-cleaner)
12#include <sourcemeta/core/jsonschema_error.h>
13#include <sourcemeta/core/jsonschema_frame.h>
14#include <sourcemeta/core/jsonschema_types.h>
15// NOLINTEND(misc-include-cleaner)
16
17#include <cstdint> // std::uint8_t, std::uint64_t
18#include <functional> // std::function
19#include <limits> // std::numeric_limits
20#include <optional> // std::optional, std::nullopt
21#include <string_view> // std::string_view
22
41
42namespace sourcemeta::core {
43
48SOURCEMETA_CORE_JSONSCHEMA_EXPORT
49auto schema_resolver(const std::string_view identifier) -> SchemaResolverResult;
50
53SOURCEMETA_CORE_JSONSCHEMA_EXPORT
54auto schema_is_known(const std::string_view identifier) noexcept -> bool;
55
59SOURCEMETA_CORE_JSONSCHEMA_EXPORT
60auto schema_is_official(const std::string_view identifier) noexcept -> bool;
61
64SOURCEMETA_CORE_JSONSCHEMA_EXPORT
65auto schema_walker(const std::string_view keyword,
66 const SchemaVocabularies &vocabularies)
67 -> const SchemaWalkerResult &;
68
92SOURCEMETA_CORE_JSONSCHEMA_EXPORT
94 std::string_view new_identifier,
95 const SchemaResolver &resolver,
96 std::string_view default_dialect = "") -> void;
97
112SOURCEMETA_CORE_JSONSCHEMA_EXPORT
114 -> std::string_view;
115
120SOURCEMETA_CORE_JSONSCHEMA_EXPORT
122 std::string_view new_identifier,
123 const SchemaBaseDialect base_dialect) -> void;
124
157SOURCEMETA_CORE_JSONSCHEMA_EXPORT
159 -> void;
160
171 using Callback = std::function<void(std::string_view,
173
175 enum class Mode : std::uint8_t {
183 };
184
188 std::optional<sourcemeta::core::Pointer> default_container;
195 std::string_view default_base;
204 std::uint64_t max_locations{std::numeric_limits<std::uint64_t>::max()};
209};
210
260SOURCEMETA_CORE_JSONSCHEMA_EXPORT
262 const SchemaResolver &resolver,
263 std::string_view default_dialect = "",
264 std::string_view default_id = "",
265 const SchemaBundleOptions &options = {}) -> void;
266
318SOURCEMETA_CORE_JSONSCHEMA_EXPORT
320 const SchemaWalker &walker, const SchemaResolver &resolver,
321 std::string_view default_dialect = "",
322 std::string_view default_id = "",
323 const SchemaBundleOptions &options = {})
325
326} // namespace sourcemeta::core
327
328#endif
Definition json_value.h:39
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
Definition jsonschema_frame.h:57
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
Definition jsonschema.h:163
Definition jsonschema_vocabularies.h:30
Definition jsonschema_types.h:211