From 8863c4ca7b5d3ba0678a0698d626e7bece2d281f Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Wed, 29 Jan 2025 09:36:10 -0400 Subject: [PATCH] Upgrade Core to `1257bcddc2797de7c95dedefebf6c2fb1e00717a` (#874) Signed-off-by: Juan Cruz Viotti --- DEPENDENCIES | 2 +- cmake/FindCore.cmake | 2 +- src/compiler/encoding.h | 2 +- .../include/sourcemeta/jsonbinpack/compiler.h | 8 +- .../2020_12_canonicalizer_any_test.cc | 126 ++++---- .../2020_12_canonicalizer_array_test.cc | 70 ++-- .../2020_12_canonicalizer_boolean_test.cc | 40 +-- .../2020_12_canonicalizer_null_test.cc | 20 +- .../2020_12_canonicalizer_number_test.cc | 260 +++++++-------- .../2020_12_canonicalizer_object_test.cc | 100 +++--- .../2020_12_canonicalizer_string_test.cc | 30 +- test/compiler/2020_12_compiler_any_test.cc | 30 +- .../compiler/2020_12_compiler_integer_test.cc | 60 ++-- test/compiler/2020_12_compiler_number_test.cc | 6 +- test/compiler/canonicalizer_test.cc | 10 +- test/compiler/compiler_test.cc | 68 ++-- test/e2e/runner.cc | 8 +- test/packaging/find_package/hello.cc | 4 +- test/runtime/decode_any_test.cc | 40 +-- test/runtime/decode_array_test.cc | 26 +- test/runtime/encode_any_test.cc | 42 +-- test/runtime/encode_array_test.cc | 25 +- test/runtime/encode_object_test.cc | 4 +- test/runtime/v1_any_loader_test.cc | 10 +- test/runtime/v1_array_loader_test.cc | 8 +- test/runtime/v1_integer_loader_test.cc | 8 +- test/runtime/v1_loader_test.cc | 2 +- test/runtime/v1_number_loader_test.cc | 2 +- test/runtime/v1_string_loader_test.cc | 12 +- .../cmake/common/targets/executable.cmake | 9 +- .../common/targets/googlebenchmark.cmake | 9 +- .../cmake/common/targets/googletest.cmake | 3 +- .../core/cmake/common/targets/library.cmake | 11 +- vendor/core/src/core/json/CMakeLists.txt | 1 - .../core/json/include/sourcemeta/core/json.h | 95 +++--- .../json/include/sourcemeta/core/json_error.h | 17 +- .../json/include/sourcemeta/core/json_hash.h | 4 +- .../include/sourcemeta/core/json_object.h | 12 +- .../json/include/sourcemeta/core/json_value.h | 161 +++++----- vendor/core/src/core/json/json.cc | 40 +-- vendor/core/src/core/json/parser.h | 71 ++-- vendor/core/src/core/json/stringify.h | 17 +- vendor/core/src/core/jsonl/CMakeLists.txt | 1 - .../jsonl/include/sourcemeta/core/jsonl.h | 2 +- vendor/core/src/core/jsonl/iterator.cc | 4 +- .../core/src/core/jsonpointer/CMakeLists.txt | 1 - .../include/sourcemeta/core/jsonpointer.h | 26 +- .../sourcemeta/core/jsonpointer_error.h | 7 +- .../sourcemeta/core/jsonpointer_position.h | 10 +- .../core/src/core/jsonpointer/jsonpointer.cc | 18 +- vendor/core/src/core/jsonpointer/position.cc | 19 +- .../core/src/core/jsonschema/CMakeLists.txt | 7 +- vendor/core/src/core/jsonschema/anchor.cc | 101 ------ vendor/core/src/core/jsonschema/bundle.cc | 4 +- .../src/core/jsonschema/default_walker.cc | 20 +- vendor/core/src/core/jsonschema/frame.cc | 304 ++++++++++++------ .../include/sourcemeta/core/jsonschema.h | 42 ++- .../sourcemeta/core/jsonschema_anchor.h | 64 ---- .../sourcemeta/core/jsonschema_bundle.h | 16 +- .../sourcemeta/core/jsonschema_frame.h | 52 +-- .../sourcemeta/core/jsonschema_keywords.h | 6 +- .../sourcemeta/core/jsonschema_reference.h | 14 - .../sourcemeta/core/jsonschema_resolver.h | 20 +- .../sourcemeta/core/jsonschema_transform.h | 4 +- .../sourcemeta/core/jsonschema_unevaluated.h | 18 +- .../sourcemeta/core/jsonschema_walker.h | 41 +-- vendor/core/src/core/jsonschema/jsonschema.cc | 6 +- .../core/jsonschema/official_resolver.in.cc | 124 ++++--- vendor/core/src/core/jsonschema/relativize.cc | 8 +- vendor/core/src/core/jsonschema/resolver.cc | 32 +- .../core/src/core/jsonschema/transformer.cc | 2 + .../core/src/core/jsonschema/unevaluated.cc | 39 +-- vendor/core/src/core/jsonschema/unidentify.cc | 2 +- vendor/core/src/core/jsonschema/walker.cc | 48 +-- vendor/core/src/core/regex/CMakeLists.txt | 3 +- vendor/core/src/core/uri/CMakeLists.txt | 1 - .../core/uri/include/sourcemeta/core/uri.h | 2 +- vendor/core/src/core/uri/uri.cc | 16 +- vendor/core/src/core/yaml/CMakeLists.txt | 1 - .../core/yaml/include/sourcemeta/core/yaml.h | 8 +- vendor/core/src/core/yaml/yaml.cc | 15 +- .../src/extension/alterschema/CMakeLists.txt | 1 - .../include/sourcemeta/core/alterschema.h | 4 +- 83 files changed, 1265 insertions(+), 1323 deletions(-) delete mode 100644 vendor/core/src/core/jsonschema/anchor.cc delete mode 100644 vendor/core/src/core/jsonschema/include/sourcemeta/core/jsonschema_anchor.h delete mode 100644 vendor/core/src/core/jsonschema/include/sourcemeta/core/jsonschema_reference.h diff --git a/DEPENDENCIES b/DEPENDENCIES index d445769f..9480a90f 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -1,3 +1,3 @@ vendorpull https://github.com/sourcemeta/vendorpull 70342aaf458e6cb80baeb5b718901075fc42ede6 -core https://github.com/sourcemeta/core 514001ace2da9444cfe2382a4134ed4cd773ce73 +core https://github.com/sourcemeta/core 1257bcddc2797de7c95dedefebf6c2fb1e00717a bootstrap https://github.com/twbs/bootstrap 1a6fdfae6be09b09eaced8f0e442ca6f7680a61e diff --git a/cmake/FindCore.cmake b/cmake/FindCore.cmake index 2d2c81d8..94f958ea 100644 --- a/cmake/FindCore.cmake +++ b/cmake/FindCore.cmake @@ -8,7 +8,7 @@ if(NOT Core_FOUND) set(SOURCEMETA_CORE_JSONL OFF CACHE BOOL "disable JSONL support") set(SOURCEMETA_CORE_YAML OFF CACHE BOOL "disable YAML support") set(SOURCEMETA_CORE_CONTRIB_GOOGLETEST ${JSONBINPACK_TESTS} CACHE BOOL "GoogleTest") - set(SOURCEMETA_CORE_CONTRIB_GOOGLEBENCHMARK ${JSONBINPACK_BENCHMARK} CACHE BOOL "GoogleBenchmark") + set(SOURCEMETA_CORE_CONTRIB_GOOGLEBENCHMARK OFF CACHE BOOL "GoogleBenchmark") add_subdirectory("${PROJECT_SOURCE_DIR}/vendor/core") include(Sourcemeta) set(Core_FOUND ON) diff --git a/src/compiler/encoding.h b/src/compiler/encoding.h index f9b5d431..77b7c62f 100644 --- a/src/compiler/encoding.h +++ b/src/compiler/encoding.h @@ -13,7 +13,7 @@ inline auto make_resolver(const sourcemeta::core::SchemaResolver &fallback) return [&fallback](std::string_view identifier) -> std::optional { if (identifier == ENCODING_V1) { - return sourcemeta::core::parse(R"JSON({ + return sourcemeta::core::parse_json(R"JSON({ "$id": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "$schema": "https://json-schema.org/draft/2020-12/schema", "$vocabulary": { diff --git a/src/compiler/include/sourcemeta/jsonbinpack/compiler.h b/src/compiler/include/sourcemeta/jsonbinpack/compiler.h index 8942ace0..8bcc4386 100644 --- a/src/compiler/include/sourcemeta/jsonbinpack/compiler.h +++ b/src/compiler/include/sourcemeta/jsonbinpack/compiler.h @@ -34,13 +34,13 @@ namespace sourcemeta::jsonbinpack { /// /// #include /// -/// auto schema{sourcemeta::core::parse(R"JSON({ +/// auto schema{sourcemeta::core::parse_json(R"JSON({ /// "$schema": "https://json-schema.org/draft/2020-12/schema", /// "type": "string" /// })JSON")}; /// /// sourcemeta::jsonbinpack::compile( -/// schema, sourcemeta::core::default_schema_walker, +/// schema, sourcemeta::core::schema_official_walker, /// sourcemeta::core::official_resolver); /// /// sourcemeta::core::prettify(schema, std::cout); @@ -67,13 +67,13 @@ auto compile(sourcemeta::core::JSON &schema, /// /// #include /// -/// auto schema{sourcemeta::core::parse(R"JSON({ +/// auto schema{sourcemeta::core::parse_json(R"JSON({ /// "$schema": "https://json-schema.org/draft/2020-12/schema", /// "type": "string" /// })JSON")}; /// /// sourcemeta::jsonbinpack::canonicalize( -/// schema, sourcemeta::core::default_schema_walker, +/// schema, sourcemeta::core::schema_official_walker, /// sourcemeta::core::official_resolver); /// /// sourcemeta::core::prettify(schema, std::cout); diff --git a/test/compiler/2020_12_canonicalizer_any_test.cc b/test/compiler/2020_12_canonicalizer_any_test.cc index 34934140..6485ae34 100644 --- a/test/compiler/2020_12_canonicalizer_any_test.cc +++ b/test/compiler/2020_12_canonicalizer_any_test.cc @@ -5,17 +5,17 @@ #include TEST(JSONBinPack_Canonicalizer_Any_2020_12, if_without_then_else_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "if": { "minProperties": 2 } })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "minProperties": 0, @@ -26,18 +26,18 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, if_without_then_else_1) { } TEST(JSONBinPack_Canonicalizer_Any_2020_12, then_else_without_if_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "then": { "minProperties": 2 }, "else": { "minProperties": 3 } })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "minProperties": 0, @@ -48,7 +48,7 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, then_else_without_if_1) { } TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_allof_branches_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { "type": "number" }, @@ -57,11 +57,11 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_allof_branches_1) { ] })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { "type": "number", "multipleOf": 1 }, @@ -73,7 +73,7 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_allof_branches_1) { } TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_allof_branches_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { "type": "number" }, @@ -82,11 +82,11 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_allof_branches_2) { ] })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { "type": "number", "multipleOf": 1 }, @@ -98,7 +98,7 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_allof_branches_2) { } TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_allof_branches_3) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { "type": "number" }, @@ -114,11 +114,11 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_allof_branches_3) { ] })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "allOf": [ { "type": "number", "multipleOf": 1 }, @@ -130,7 +130,7 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_allof_branches_3) { } TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_anyof_branches_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "type": "number" }, @@ -139,11 +139,11 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_anyof_branches_1) { ] })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "type": "number", "multipleOf": 1 }, @@ -155,7 +155,7 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_anyof_branches_1) { } TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_anyof_branches_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "type": "number" }, @@ -164,11 +164,11 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_anyof_branches_2) { ] })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "type": "number", "multipleOf": 1 }, @@ -180,7 +180,7 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_anyof_branches_2) { } TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_anyof_branches_3) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "type": "number" }, @@ -196,11 +196,11 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_anyof_branches_3) { ] })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "type": "number", "multipleOf": 1 }, @@ -212,16 +212,16 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, duplicate_anyof_branches_3) { } TEST(JSONBinPack_Canonicalizer_Any_2020_12, type_union_anyof_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": [ "object", "array" ] })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { @@ -240,17 +240,17 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, type_union_anyof_1) { } TEST(JSONBinPack_Canonicalizer_Any_2020_12, type_union_anyof_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": [ "object", "array" ], "maxProperties": 3 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { @@ -270,7 +270,7 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, type_union_anyof_2) { } TEST(JSONBinPack_Canonicalizer_Any_2020_12, type_union_anyof_3) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { @@ -280,11 +280,11 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, type_union_anyof_3) { } })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "minProperties": 0, @@ -309,15 +309,15 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, type_union_anyof_3) { } TEST(JSONBinPack_Canonicalizer_Any_2020_12, implicit_type_union_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema" })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "anyOf": [ { "enum": [ null ] }, @@ -353,11 +353,11 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, boolean_schema_1) { sourcemeta::core::JSON schema{true}; sourcemeta::jsonbinpack::canonicalize( - schema, sourcemeta::core::default_schema_walker, + schema, sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver, "https://json-schema.org/draft/2020-12/schema"); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "anyOf": [ { "enum": [ null ] }, { "enum": [ false, true ] }, @@ -392,7 +392,7 @@ TEST(JSONBinPack_Canonicalizer_Any_2020_12, boolean_schema_2) { sourcemeta::core::JSON schema{false}; sourcemeta::jsonbinpack::canonicalize( - schema, sourcemeta::core::default_schema_walker, + schema, sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver, "https://json-schema.org/draft/2020-12/schema"); diff --git a/test/compiler/2020_12_canonicalizer_array_test.cc b/test/compiler/2020_12_canonicalizer_array_test.cc index b9346389..efebc7ee 100644 --- a/test/compiler/2020_12_canonicalizer_array_test.cc +++ b/test/compiler/2020_12_canonicalizer_array_test.cc @@ -5,17 +5,17 @@ #include TEST(JSONBinPack_Canonicalizer_Array_2020_12, max_contains_without_contains_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array", "maxContains": 2 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array", "minItems": 0 @@ -25,18 +25,18 @@ TEST(JSONBinPack_Canonicalizer_Array_2020_12, max_contains_without_contains_1) { } TEST(JSONBinPack_Canonicalizer_Array_2020_12, max_contains_without_contains_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array", "contains": { "type": "string" }, "maxContains": 2 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array", "contains": { @@ -51,17 +51,17 @@ TEST(JSONBinPack_Canonicalizer_Array_2020_12, max_contains_without_contains_2) { } TEST(JSONBinPack_Canonicalizer_Array_2020_12, min_contains_without_contains_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array", "minContains": 2 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array", "minItems": 0 @@ -71,18 +71,18 @@ TEST(JSONBinPack_Canonicalizer_Array_2020_12, min_contains_without_contains_1) { } TEST(JSONBinPack_Canonicalizer_Array_2020_12, min_contains_without_contains_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array", "contains": { "type": "string" }, "minContains": 2 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array", "contains": { @@ -97,7 +97,7 @@ TEST(JSONBinPack_Canonicalizer_Array_2020_12, min_contains_without_contains_2) { } TEST(JSONBinPack_Canonicalizer_Array_2020_12, unsatisfiable_max_contains_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array", "contains": { "type": "string" }, @@ -105,11 +105,11 @@ TEST(JSONBinPack_Canonicalizer_Array_2020_12, unsatisfiable_max_contains_1) { "maxItems": 2 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array", "contains": { @@ -125,16 +125,16 @@ TEST(JSONBinPack_Canonicalizer_Array_2020_12, unsatisfiable_max_contains_1) { } TEST(JSONBinPack_Canonicalizer_Array_2020_12, implicit_array_lower_bound_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array" })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array", "minItems": 0 @@ -144,18 +144,18 @@ TEST(JSONBinPack_Canonicalizer_Array_2020_12, implicit_array_lower_bound_1) { } TEST(JSONBinPack_Canonicalizer_Array_2020_12, drop_non_array_keywords_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array", "maxItems": 4, "maxLength": 3 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "array", "maxItems": 4, diff --git a/test/compiler/2020_12_canonicalizer_boolean_test.cc b/test/compiler/2020_12_canonicalizer_boolean_test.cc index 0f19a5b4..b3119bcc 100644 --- a/test/compiler/2020_12_canonicalizer_boolean_test.cc +++ b/test/compiler/2020_12_canonicalizer_boolean_test.cc @@ -5,16 +5,16 @@ #include TEST(JSONBinPack_Canonicalizer_Boolean_2020_12, type_boolean) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "boolean" })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ false, true ] })JSON"); @@ -23,18 +23,18 @@ TEST(JSONBinPack_Canonicalizer_Boolean_2020_12, type_boolean) { } TEST(JSONBinPack_Canonicalizer_Boolean_2020_12, drop_non_boolean_keywords_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "boolean", "maxItems": 4, "maxLength": 3 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ false, true ] })JSON"); @@ -43,18 +43,18 @@ TEST(JSONBinPack_Canonicalizer_Boolean_2020_12, drop_non_boolean_keywords_1) { } TEST(JSONBinPack_Canonicalizer_Boolean_2020_12, drop_non_boolean_keywords_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ true, false, true ], "maxItems": 4, "maxLength": 3 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ false, true ] })JSON"); @@ -63,17 +63,17 @@ TEST(JSONBinPack_Canonicalizer_Boolean_2020_12, drop_non_boolean_keywords_2) { } TEST(JSONBinPack_Canonicalizer_Boolean_2020_12, drop_non_boolean_keywords_3) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "boolean", "format": "uri" })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ false, true ] })JSON"); diff --git a/test/compiler/2020_12_canonicalizer_null_test.cc b/test/compiler/2020_12_canonicalizer_null_test.cc index e6db7197..61a2285e 100644 --- a/test/compiler/2020_12_canonicalizer_null_test.cc +++ b/test/compiler/2020_12_canonicalizer_null_test.cc @@ -5,18 +5,18 @@ #include TEST(JSONBinPack_Canonicalizer_Null_2020_12, drop_non_null_keywords_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "null", "maxItems": 4, "maxLength": 3 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ null ] })JSON"); @@ -25,18 +25,18 @@ TEST(JSONBinPack_Canonicalizer_Null_2020_12, drop_non_null_keywords_1) { } TEST(JSONBinPack_Canonicalizer_Null_2020_12, drop_non_null_keywords_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ null, null, null ], "maxItems": 4, "maxLength": 3 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ null ] })JSON"); diff --git a/test/compiler/2020_12_canonicalizer_number_test.cc b/test/compiler/2020_12_canonicalizer_number_test.cc index f981e74a..5706ac5e 100644 --- a/test/compiler/2020_12_canonicalizer_number_test.cc +++ b/test/compiler/2020_12_canonicalizer_number_test.cc @@ -5,16 +5,16 @@ #include TEST(JSONBinPack_Canonicalizer_Number_2020_12, implicit_unit_multiple_of_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer" })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1 @@ -24,17 +24,17 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, implicit_unit_multiple_of_1) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMaximum": 5 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -45,17 +45,17 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_1) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMaximum": 5.1 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -66,18 +66,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_2) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_3) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMaximum": 5, "maximum": 3 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -88,18 +88,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_3) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_4) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMaximum": 5.1, "maximum": 3 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -110,18 +110,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_4) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_5) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMaximum": 5, "maximum": 3.2 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -132,18 +132,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_5) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_6) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMaximum": 5.1, "maximum": 3.2 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -154,18 +154,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_6) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_7) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMaximum": 5, "maximum": 5 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -176,18 +176,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_7) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_8) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMaximum": 5.1, "maximum": 5 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -198,18 +198,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_8) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_9) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMaximum": 5, "maximum": 5.1 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -221,18 +221,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_9) { TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_maximum_to_maximum_10) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMaximum": 5.1, "maximum": 5.1 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -243,17 +243,17 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMinimum": 5 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -264,17 +264,17 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_1) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMinimum": 5.1 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -285,18 +285,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_2) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_3) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMinimum": 5, "minimum": 7 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -307,18 +307,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_3) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_4) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMinimum": 5.1, "minimum": 7 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -329,18 +329,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_4) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_5) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMinimum": 5, "minimum": 7.2 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -351,18 +351,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_5) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_6) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMinimum": 5.1, "minimum": 7.2 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -373,18 +373,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_6) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_7) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMinimum": 5, "minimum": 4 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -395,18 +395,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_7) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_8) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMinimum": 5.1, "minimum": 4 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -417,18 +417,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_8) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_9) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMinimum": 5, "minimum": 4.8 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -440,18 +440,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_9) { TEST(JSONBinPack_Canonicalizer_Number_2020_12, exclusive_minimum_to_minimum_10) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "exclusiveMinimum": 5.2, "minimum": 4.8 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 1, @@ -463,18 +463,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, TEST(JSONBinPack_Canonicalizer_Number_2020_12, equal_numeric_bounds_as_const_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "maximum": 5, "minimum": 5 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ 5 ] })JSON"); @@ -484,18 +484,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, TEST(JSONBinPack_Canonicalizer_Number_2020_12, equal_numeric_bounds_as_const_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "number", "maximum": 5.2, "minimum": 5.2 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ 5.2 ] })JSON"); @@ -504,7 +504,7 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, } TEST(JSONBinPack_Canonicalizer_Number_2020_12, drop_non_numeric_keywords_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "number", "maximum": 4, @@ -512,11 +512,11 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, drop_non_numeric_keywords_1) { "properties": {} })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "number", "multipleOf": 1, @@ -527,7 +527,7 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, drop_non_numeric_keywords_1) { } TEST(JSONBinPack_Canonicalizer_Number_2020_12, drop_non_numeric_keywords_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "maximum": 4, @@ -535,11 +535,11 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, drop_non_numeric_keywords_2) { "properties": {} })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "maximum": 4, @@ -551,18 +551,18 @@ TEST(JSONBinPack_Canonicalizer_Number_2020_12, drop_non_numeric_keywords_2) { TEST(JSONBinPack_Canonicalizer_Number_2020_12, equal_numeric_bounds_without_numeric_type_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "string", "maximum": 5, "minimum": 5 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "string", "minLength": 0 diff --git a/test/compiler/2020_12_canonicalizer_object_test.cc b/test/compiler/2020_12_canonicalizer_object_test.cc index fc4c9d86..89e3df77 100644 --- a/test/compiler/2020_12_canonicalizer_object_test.cc +++ b/test/compiler/2020_12_canonicalizer_object_test.cc @@ -6,18 +6,18 @@ TEST(JSONBinPack_Canonicalizer_Object_2020_12, min_properties_required_tautology_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "foo", "bar" ], "minProperties": 1 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "foo", "bar" ], @@ -30,18 +30,18 @@ TEST(JSONBinPack_Canonicalizer_Object_2020_12, TEST(JSONBinPack_Canonicalizer_Object_2020_12, min_properties_required_tautology_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "foo", "bar" ], "minProperties": 2 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "foo", "bar" ], @@ -54,18 +54,18 @@ TEST(JSONBinPack_Canonicalizer_Object_2020_12, TEST(JSONBinPack_Canonicalizer_Object_2020_12, min_properties_required_tautology_3) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "bar", "foo", "bar", "bar" ], "minProperties": 1 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "bar", "foo" ], @@ -77,17 +77,17 @@ TEST(JSONBinPack_Canonicalizer_Object_2020_12, } TEST(JSONBinPack_Canonicalizer_Object_2020_12, empty_pattern_properties_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "patternProperties": {} })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "minProperties": 0, @@ -99,16 +99,16 @@ TEST(JSONBinPack_Canonicalizer_Object_2020_12, empty_pattern_properties_1) { } TEST(JSONBinPack_Canonicalizer_Object_2020_12, implicit_object_lower_bound_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object" })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "minProperties": 0, @@ -119,18 +119,18 @@ TEST(JSONBinPack_Canonicalizer_Object_2020_12, implicit_object_lower_bound_1) { } TEST(JSONBinPack_Canonicalizer_Object_2020_12, drop_non_object_keywords_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "maxProperties": 4, "maxItems": 3 })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "maxProperties": 4, @@ -142,7 +142,7 @@ TEST(JSONBinPack_Canonicalizer_Object_2020_12, drop_non_object_keywords_1) { } TEST(JSONBinPack_Canonicalizer_Object_2020_12, dependent_required_tautology_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "foo", "bar" ], @@ -151,11 +151,11 @@ TEST(JSONBinPack_Canonicalizer_Object_2020_12, dependent_required_tautology_1) { } })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "foo", "bar", "baz" ], @@ -168,7 +168,7 @@ TEST(JSONBinPack_Canonicalizer_Object_2020_12, dependent_required_tautology_1) { } TEST(JSONBinPack_Canonicalizer_Object_2020_12, dependent_required_tautology_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "foo", "bar", "qux" ], @@ -177,11 +177,11 @@ TEST(JSONBinPack_Canonicalizer_Object_2020_12, dependent_required_tautology_2) { } })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "bar", "baz", "foo", "qux" ], @@ -194,17 +194,17 @@ TEST(JSONBinPack_Canonicalizer_Object_2020_12, dependent_required_tautology_2) { } TEST(JSONBinPack_Canonicalizer_Object_2020_12, duplicate_required_values_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "foo", "foo" ] })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "foo" ], @@ -216,17 +216,17 @@ TEST(JSONBinPack_Canonicalizer_Object_2020_12, duplicate_required_values_1) { } TEST(JSONBinPack_Canonicalizer_Object_2020_12, duplicate_required_values_2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "foo", "bar", "bar", "baz", "bar" ] })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "required": [ "bar", "baz", "foo" ], diff --git a/test/compiler/2020_12_canonicalizer_string_test.cc b/test/compiler/2020_12_canonicalizer_string_test.cc index 2a916f0c..532ed3b4 100644 --- a/test/compiler/2020_12_canonicalizer_string_test.cc +++ b/test/compiler/2020_12_canonicalizer_string_test.cc @@ -6,7 +6,7 @@ TEST(JSONBinPack_Canonicalizer_String_2020_12, content_schema_without_content_media_type_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "string", "contentSchema": { @@ -14,11 +14,11 @@ TEST(JSONBinPack_Canonicalizer_String_2020_12, } })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "string", "minLength": 0 @@ -28,16 +28,16 @@ TEST(JSONBinPack_Canonicalizer_String_2020_12, } TEST(JSONBinPack_Canonicalizer_String_2020_12, implicit_string_lower_bound_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "string" })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "string", "minLength": 0 @@ -47,7 +47,7 @@ TEST(JSONBinPack_Canonicalizer_String_2020_12, implicit_string_lower_bound_1) { } TEST(JSONBinPack_Canonicalizer_String_2020_12, drop_non_string_keywords_1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "string", "maxLength": 4, @@ -55,11 +55,11 @@ TEST(JSONBinPack_Canonicalizer_String_2020_12, drop_non_string_keywords_1) { "properties": {} })JSON"); - sourcemeta::jsonbinpack::canonicalize(schema, - sourcemeta::core::default_schema_walker, - sourcemeta::core::official_resolver); + sourcemeta::jsonbinpack::canonicalize( + schema, sourcemeta::core::schema_official_walker, + sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "string", "maxLength": 4, diff --git a/test/compiler/2020_12_compiler_any_test.cc b/test/compiler/2020_12_compiler_any_test.cc index a6c97b22..38afa9ac 100644 --- a/test/compiler/2020_12_compiler_any_test.cc +++ b/test/compiler/2020_12_compiler_any_test.cc @@ -4,16 +4,16 @@ #include TEST(JSONBinPack_Compiler_Any_2020_12, enum_singleton) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ 2 ] })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "CONST_NONE", "binpackOptions": { @@ -25,16 +25,16 @@ TEST(JSONBinPack_Compiler_Any_2020_12, enum_singleton) { } TEST(JSONBinPack_Compiler_Any_2020_12, const_scalar) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "const": 2 })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "CONST_NONE", "binpackOptions": { @@ -46,16 +46,16 @@ TEST(JSONBinPack_Compiler_Any_2020_12, const_scalar) { } TEST(JSONBinPack_Compiler_Any_2020_12, enum_small_top_level) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "enum": [ 1, 2, 3 ] })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "TOP_LEVEL_BYTE_CHOICE_INDEX", "binpackOptions": { @@ -67,15 +67,15 @@ TEST(JSONBinPack_Compiler_Any_2020_12, enum_small_top_level) { } TEST(JSONBinPack_Compiler_Any_2020_12, only_metaschema) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema" })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX", "binpackOptions": {} @@ -85,14 +85,14 @@ TEST(JSONBinPack_Compiler_Any_2020_12, only_metaschema) { } TEST(JSONBinPack_Compiler_Any_2020_12, empty) { - auto schema = sourcemeta::core::parse("{}"); + auto schema = sourcemeta::core::parse_json("{}"); sourcemeta::jsonbinpack::compile( - schema, sourcemeta::core::default_schema_walker, + schema, sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver, "https://json-schema.org/draft/2020-12/schema"); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX", "binpackOptions": {} diff --git a/test/compiler/2020_12_compiler_integer_test.cc b/test/compiler/2020_12_compiler_integer_test.cc index 7b551d8c..806f3bbe 100644 --- a/test/compiler/2020_12_compiler_integer_test.cc +++ b/test/compiler/2020_12_compiler_integer_test.cc @@ -4,7 +4,7 @@ #include TEST(JSONBinPack_Compiler_Integer_2020_12, maximum_minimum_8_bit) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "minimum": -100, @@ -12,10 +12,10 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, maximum_minimum_8_bit) { })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "BOUNDED_MULTIPLE_8BITS_ENUM_FIXED", "binpackOptions": { @@ -29,7 +29,7 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, maximum_minimum_8_bit) { } TEST(JSONBinPack_Compiler_Integer_2020_12, maximum_minimum_multiplier_8_bit) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "minimum": -100, @@ -38,10 +38,10 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, maximum_minimum_multiplier_8_bit) { })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "BOUNDED_MULTIPLE_8BITS_ENUM_FIXED", "binpackOptions": { @@ -55,7 +55,7 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, maximum_minimum_multiplier_8_bit) { } TEST(JSONBinPack_Compiler_Integer_2020_12, maximum_minimum_greater_than_8_bit) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "minimum": -100, @@ -63,10 +63,10 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, maximum_minimum_greater_than_8_bit) { })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "FLOOR_MULTIPLE_ENUM_VARINT", "binpackOptions": { @@ -80,7 +80,7 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, maximum_minimum_greater_than_8_bit) { TEST(JSONBinPack_Compiler_Integer_2020_12, maximum_minimum_multiplier_greater_than_8_bit) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "minimum": -100, @@ -89,10 +89,10 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "FLOOR_MULTIPLE_ENUM_VARINT", "binpackOptions": { @@ -105,17 +105,17 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, } TEST(JSONBinPack_Compiler_Integer_2020_12, minimum) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "minimum": 0 })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "FLOOR_MULTIPLE_ENUM_VARINT", "binpackOptions": { @@ -128,7 +128,7 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, minimum) { } TEST(JSONBinPack_Compiler_Integer_2020_12, minimum_multiplier) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "minimum": 0, @@ -136,10 +136,10 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, minimum_multiplier) { })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "FLOOR_MULTIPLE_ENUM_VARINT", "binpackOptions": { @@ -152,17 +152,17 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, minimum_multiplier) { } TEST(JSONBinPack_Compiler_Integer_2020_12, maximum) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "maximum": 100 })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ROOF_MULTIPLE_MIRROR_ENUM_VARINT", "binpackOptions": { @@ -175,7 +175,7 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, maximum) { } TEST(JSONBinPack_Compiler_Integer_2020_12, maximum_multiplier) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "maximum": 100, @@ -183,10 +183,10 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, maximum_multiplier) { })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ROOF_MULTIPLE_MIRROR_ENUM_VARINT", "binpackOptions": { @@ -199,16 +199,16 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, maximum_multiplier) { } TEST(JSONBinPack_Compiler_Integer_2020_12, unbounded) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer" })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ARBITRARY_MULTIPLE_ZIGZAG_VARINT", "binpackOptions": { @@ -220,17 +220,17 @@ TEST(JSONBinPack_Compiler_Integer_2020_12, unbounded) { } TEST(JSONBinPack_Compiler_Integer_2020_12, unbounded_multiplier) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "multipleOf": 5 })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ARBITRARY_MULTIPLE_ZIGZAG_VARINT", "binpackOptions": { diff --git a/test/compiler/2020_12_compiler_number_test.cc b/test/compiler/2020_12_compiler_number_test.cc index 1f1c836d..d3b52569 100644 --- a/test/compiler/2020_12_compiler_number_test.cc +++ b/test/compiler/2020_12_compiler_number_test.cc @@ -4,16 +4,16 @@ #include TEST(JSONBinPack_Compiler_Number_2020_12, arbitrary) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "number" })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "DOUBLE_VARINT_TUPLE", "binpackOptions": {} diff --git a/test/compiler/canonicalizer_test.cc b/test/compiler/canonicalizer_test.cc index d1a0ca14..68fe8648 100644 --- a/test/compiler/canonicalizer_test.cc +++ b/test/compiler/canonicalizer_test.cc @@ -10,7 +10,7 @@ static auto test_resolver(std::string_view identifier) -> std::optional { if (identifier == "https://jsonbinpack.sourcemeta.com/draft/unknown") { - return sourcemeta::core::parse(R"JSON({ + return sourcemeta::core::parse_json(R"JSON({ "$schema": "https://jsonbinpack.sourcemeta.com/draft/unknown", "$id": "https://jsonbinpack.sourcemeta.com/draft/unknown" })JSON"); @@ -20,24 +20,24 @@ static auto test_resolver(std::string_view identifier) } TEST(JSONBinPack_Canonicalizer, unsupported_draft) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://jsonbinpack.sourcemeta.com/draft/unknown", "type": "boolean" })JSON"); EXPECT_THROW( sourcemeta::jsonbinpack::canonicalize( - schema, sourcemeta::core::default_schema_walker, test_resolver), + schema, sourcemeta::core::schema_official_walker, test_resolver), sourcemeta::core::SchemaError); } TEST(JSONBinPack_Canonicalizer, unknown_draft) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "type": "boolean" })JSON"); EXPECT_THROW(sourcemeta::jsonbinpack::canonicalize( - schema, sourcemeta::core::default_schema_walker, + schema, sourcemeta::core::schema_official_walker, test_resolver, "https://example.com/invalid"), sourcemeta::core::SchemaResolutionError); } diff --git a/test/compiler/compiler_test.cc b/test/compiler/compiler_test.cc index f45feaba..90039dc1 100644 --- a/test/compiler/compiler_test.cc +++ b/test/compiler/compiler_test.cc @@ -6,15 +6,15 @@ #include TEST(JSONBinPack_Compiler, dialect_2020_12) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema" })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX", "binpackOptions": {} @@ -24,15 +24,15 @@ TEST(JSONBinPack_Compiler, dialect_2020_12) { } TEST(JSONBinPack_Compiler, dialect_2019_09) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2019-09/schema" })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX", "binpackOptions": {} @@ -42,15 +42,15 @@ TEST(JSONBinPack_Compiler, dialect_2019_09) { } TEST(JSONBinPack_Compiler, dialect_draft7) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "http://json-schema.org/draft-07/schema#" })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX", "binpackOptions": {} @@ -60,15 +60,15 @@ TEST(JSONBinPack_Compiler, dialect_draft7) { } TEST(JSONBinPack_Compiler, dialect_draft6) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "http://json-schema.org/draft-06/schema#" })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX", "binpackOptions": {} @@ -78,15 +78,15 @@ TEST(JSONBinPack_Compiler, dialect_draft6) { } TEST(JSONBinPack_Compiler, dialect_draft4) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "http://json-schema.org/draft-04/schema#" })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX", "binpackOptions": {} @@ -96,15 +96,15 @@ TEST(JSONBinPack_Compiler, dialect_draft4) { } TEST(JSONBinPack_Compiler, dialect_draft3) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "http://json-schema.org/draft-03/schema#" })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX", "binpackOptions": {} @@ -114,15 +114,15 @@ TEST(JSONBinPack_Compiler, dialect_draft3) { } TEST(JSONBinPack_Compiler, dialect_draft2) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "http://json-schema.org/draft-02/schema#" })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX", "binpackOptions": {} @@ -132,15 +132,15 @@ TEST(JSONBinPack_Compiler, dialect_draft2) { } TEST(JSONBinPack_Compiler, dialect_draft1) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "http://json-schema.org/draft-01/schema#" })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX", "binpackOptions": {} @@ -150,15 +150,15 @@ TEST(JSONBinPack_Compiler, dialect_draft1) { } TEST(JSONBinPack_Compiler, dialect_draft0) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "http://json-schema.org/draft-00/schema#" })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX", "binpackOptions": {} @@ -168,16 +168,16 @@ TEST(JSONBinPack_Compiler, dialect_draft0) { } TEST(JSONBinPack_Compiler, unknown_dialect_default) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "type": "integer" })JSON"); sourcemeta::jsonbinpack::compile( - schema, sourcemeta::core::default_schema_walker, + schema, sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver, "https://json-schema.org/draft/2020-12/schema"); - const auto expected = sourcemeta::core::parse(R"JSON({ + const auto expected = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ARBITRARY_MULTIPLE_ZIGZAG_VARINT", "binpackOptions": { @@ -189,24 +189,24 @@ TEST(JSONBinPack_Compiler, unknown_dialect_default) { } TEST(JSONBinPack_Compiler, unknown_dialect_without_default) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "type": "integer" })JSON"); EXPECT_THROW(sourcemeta::jsonbinpack::compile( - schema, sourcemeta::core::default_schema_walker, + schema, sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver), sourcemeta::core::SchemaError); } TEST(JSONBinPack_Compiler, invalid_dialect) { - auto schema = sourcemeta::core::parse(R"JSON({ + auto schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://foo.com", "type": "integer" })JSON"); EXPECT_THROW(sourcemeta::jsonbinpack::compile( - schema, sourcemeta::core::default_schema_walker, + schema, sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver), sourcemeta::core::SchemaResolutionError); } diff --git a/test/e2e/runner.cc b/test/e2e/runner.cc index 3d850f4e..cb11aac7 100644 --- a/test/e2e/runner.cc +++ b/test/e2e/runner.cc @@ -24,18 +24,18 @@ auto main(int argc, char *argv[]) -> int { const std::filesystem::path instance_path{argv[1]}; assert(std::filesystem::is_regular_file(instance_path)); const sourcemeta::core::JSON instance = - sourcemeta::core::from_file(instance_path); + sourcemeta::core::read_json(instance_path); const std::filesystem::path directory{argv[2]}; assert(std::filesystem::is_directory(directory)); // Schema const std::filesystem::path schema_path{directory / "schema.json"}; assert(std::filesystem::is_regular_file(schema_path)); - sourcemeta::core::JSON schema = sourcemeta::core::from_file(schema_path); + sourcemeta::core::JSON schema = sourcemeta::core::read_json(schema_path); // Canonicalize sourcemeta::jsonbinpack::canonicalize( - schema, sourcemeta::core::default_schema_walker, + schema, sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver, DEFAULT_METASCHEMA); std::ofstream canonical_output_stream(directory / "canonical.json", @@ -49,7 +49,7 @@ auto main(int argc, char *argv[]) -> int { // Compile sourcemeta::jsonbinpack::compile( - schema, sourcemeta::core::default_schema_walker, + schema, sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver, DEFAULT_METASCHEMA); std::ofstream encoding_output_stream(directory / "encoding.json", diff --git a/test/packaging/find_package/hello.cc b/test/packaging/find_package/hello.cc index ae66b854..a3b5dad5 100644 --- a/test/packaging/find_package/hello.cc +++ b/test/packaging/find_package/hello.cc @@ -8,7 +8,7 @@ #include // std::cout auto main() -> int { - sourcemeta::core::JSON schema = sourcemeta::core::parse(R"JSON({ + sourcemeta::core::JSON schema = sourcemeta::core::parse_json(R"JSON({ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "integer", "minimum": -100, @@ -16,7 +16,7 @@ auto main() -> int { })JSON"); sourcemeta::jsonbinpack::compile(schema, - sourcemeta::core::default_schema_walker, + sourcemeta::core::schema_official_walker, sourcemeta::core::official_resolver); const sourcemeta::jsonbinpack::Encoding encoding{ diff --git a/test/runtime/decode_any_test.cc b/test/runtime/decode_any_test.cc index 475d33fa..c8f58488 100644 --- a/test/runtime/decode_any_test.cc +++ b/test/runtime/decode_any_test.cc @@ -61,13 +61,13 @@ TEST(JSONBinPack_Decoder, BYTE_CHOICE_INDEX_non_scalar_1) { InputByteStream stream{0x03}; sourcemeta::jsonbinpack::Decoder decoder{stream}; std::vector choices; - choices.push_back(sourcemeta::core::parse("{ \"foo\": 2 }")); - choices.push_back(sourcemeta::core::parse("{}")); - choices.push_back(sourcemeta::core::parse("[ 1, 2, 3 ]")); - choices.push_back(sourcemeta::core::parse("{ \"foo\": 1 }")); - choices.push_back(sourcemeta::core::parse("{ \"bar\": 1 }")); + choices.push_back(sourcemeta::core::parse_json("{ \"foo\": 2 }")); + choices.push_back(sourcemeta::core::parse_json("{}")); + choices.push_back(sourcemeta::core::parse_json("[ 1, 2, 3 ]")); + choices.push_back(sourcemeta::core::parse_json("{ \"foo\": 1 }")); + choices.push_back(sourcemeta::core::parse_json("{ \"bar\": 1 }")); const auto result = decoder.BYTE_CHOICE_INDEX({std::move(choices)}); - const auto expected = sourcemeta::core::parse("{ \"foo\": 1 }"); + const auto expected = sourcemeta::core::parse_json("{ \"foo\": 1 }"); EXPECT_EQ(result, expected); } @@ -123,13 +123,13 @@ TEST(JSONBinPack_Decoder, LARGE_CHOICE_INDEX_non_scalar_1) { InputByteStream stream{0x03}; sourcemeta::jsonbinpack::Decoder decoder{stream}; std::vector choices; - choices.push_back(sourcemeta::core::parse("{ \"foo\": 2 }")); - choices.push_back(sourcemeta::core::parse("{}")); - choices.push_back(sourcemeta::core::parse("[ 1, 2, 3 ]")); - choices.push_back(sourcemeta::core::parse("{ \"foo\": 1 }")); - choices.push_back(sourcemeta::core::parse("{ \"bar\": 1 }")); + choices.push_back(sourcemeta::core::parse_json("{ \"foo\": 2 }")); + choices.push_back(sourcemeta::core::parse_json("{}")); + choices.push_back(sourcemeta::core::parse_json("[ 1, 2, 3 ]")); + choices.push_back(sourcemeta::core::parse_json("{ \"foo\": 1 }")); + choices.push_back(sourcemeta::core::parse_json("{ \"bar\": 1 }")); const auto result = decoder.LARGE_CHOICE_INDEX({std::move(choices)}); - const auto expected = sourcemeta::core::parse("{ \"foo\": 1 }"); + const auto expected = sourcemeta::core::parse_json("{ \"foo\": 1 }"); EXPECT_EQ(result, expected); } @@ -199,13 +199,13 @@ TEST(JSONBinPack_Decoder, TOP_LEVEL_BYTE_CHOICE_INDEX_non_scalar_1) { InputByteStream stream{0x02}; sourcemeta::jsonbinpack::Decoder decoder{stream}; std::vector choices; - choices.push_back(sourcemeta::core::parse("{ \"foo\": 2 }")); - choices.push_back(sourcemeta::core::parse("{}")); - choices.push_back(sourcemeta::core::parse("[ 1, 2, 3 ]")); - choices.push_back(sourcemeta::core::parse("{ \"foo\": 1 }")); - choices.push_back(sourcemeta::core::parse("{ \"bar\": 1 }")); + choices.push_back(sourcemeta::core::parse_json("{ \"foo\": 2 }")); + choices.push_back(sourcemeta::core::parse_json("{}")); + choices.push_back(sourcemeta::core::parse_json("[ 1, 2, 3 ]")); + choices.push_back(sourcemeta::core::parse_json("{ \"foo\": 1 }")); + choices.push_back(sourcemeta::core::parse_json("{ \"bar\": 1 }")); const auto result = decoder.TOP_LEVEL_BYTE_CHOICE_INDEX({std::move(choices)}); - const auto expected = sourcemeta::core::parse("{ \"foo\": 1 }"); + const auto expected = sourcemeta::core::parse_json("{ \"foo\": 1 }"); EXPECT_EQ(result, expected); } @@ -221,8 +221,8 @@ TEST(JSONBinPack_Decoder, CONST_NONE_complex) { InputByteStream stream{}; sourcemeta::jsonbinpack::Decoder decoder{stream}; const auto result = - decoder.CONST_NONE({sourcemeta::core::parse("{ \"foo\": 1 }")}); - const auto expected = sourcemeta::core::parse("{ \"foo\": 1 }"); + decoder.CONST_NONE({sourcemeta::core::parse_json("{ \"foo\": 1 }")}); + const auto expected = sourcemeta::core::parse_json("{ \"foo\": 1 }"); EXPECT_EQ(result, expected); } diff --git a/test/runtime/decode_array_test.cc b/test/runtime/decode_array_test.cc index ff78549a..b6638ce3 100644 --- a/test/runtime/decode_array_test.cc +++ b/test/runtime/decode_array_test.cc @@ -15,7 +15,7 @@ TEST(JSONBinPack_Decoder, FIXED_TYPED_ARRAY_0_1_2__no_prefix_encodings) { {3, std::make_shared(BOUNDED_MULTIPLE_8BITS_ENUM_FIXED{0, 10, 1}), {}}); - const auto expected = sourcemeta::core::parse("[ 0, 1, 2 ]"); + const auto expected = sourcemeta::core::parse_json("[ 0, 1, 2 ]"); EXPECT_EQ(result, expected); } @@ -36,7 +36,7 @@ TEST(JSONBinPack_Decoder, FIXED_TYPED_ARRAY_0_1_true__semityped) { std::make_shared(BYTE_CHOICE_INDEX{std::move(choices)}), {std::move(first), std::move(second)}}); - const auto expected = sourcemeta::core::parse("[ 0, 1, true ]"); + const auto expected = sourcemeta::core::parse_json("[ 0, 1, true ]"); EXPECT_EQ(result, expected); } @@ -48,7 +48,7 @@ TEST(JSONBinPack_Decoder, FIXED_TYPED_ARRAY_empty__no_prefix_encodings) { {0, std::make_shared(BOUNDED_MULTIPLE_8BITS_ENUM_FIXED{0, 10, 1}), {}}); - const auto expected = sourcemeta::core::parse("[]"); + const auto expected = sourcemeta::core::parse_json("[]"); EXPECT_EQ(result, expected); } @@ -68,7 +68,7 @@ TEST(JSONBinPack_Decoder, std::make_shared(BYTE_CHOICE_INDEX{std::move(choices)}), {}}); - const auto expected = sourcemeta::core::parse("[ true, false, true ]"); + const auto expected = sourcemeta::core::parse_json("[ true, false, true ]"); EXPECT_EQ(result, expected); } @@ -88,7 +88,7 @@ TEST(JSONBinPack_Decoder, std::make_shared(BYTE_CHOICE_INDEX{std::move(choices)}), {}}); - const auto expected = sourcemeta::core::parse("[ true, false, true ]"); + const auto expected = sourcemeta::core::parse_json("[ true, false, true ]"); EXPECT_EQ(result, expected); } @@ -107,7 +107,7 @@ TEST(JSONBinPack_Decoder, BOUNDED_8BITS_TYPED_ARRAY_true_false_5__1_3) { std::make_shared(BOUNDED_MULTIPLE_8BITS_ENUM_FIXED{0, 255, 1}), {BYTE_CHOICE_INDEX{choices}, BYTE_CHOICE_INDEX{choices}}}); - const auto expected = sourcemeta::core::parse("[ true, false, 5 ]"); + const auto expected = sourcemeta::core::parse_json("[ true, false, 5 ]"); EXPECT_EQ(result, expected); } @@ -127,7 +127,7 @@ TEST(JSONBinPack_Decoder, BOUNDED_8BITS_TYPED_ARRAY_complex) { {BYTE_CHOICE_INDEX{choices}, FLOOR_VARINT_PREFIX_UTF8_STRING_SHARED{3}}}); - const auto expected = sourcemeta::core::parse("[ true, \"foo\", 1000 ]"); + const auto expected = sourcemeta::core::parse_json("[ true, \"foo\", 1000 ]"); EXPECT_EQ(result, expected); } @@ -146,7 +146,7 @@ TEST(JSONBinPack_Decoder, std::make_shared(BYTE_CHOICE_INDEX{std::move(choices)}), {}}); - const auto expected = sourcemeta::core::parse("[ true, false, true ]"); + const auto expected = sourcemeta::core::parse_json("[ true, false, true ]"); EXPECT_EQ(result, expected); } @@ -164,7 +164,7 @@ TEST(JSONBinPack_Decoder, FLOOR_TYPED_ARRAY_true_false_5__1_3) { std::make_shared(BOUNDED_MULTIPLE_8BITS_ENUM_FIXED{0, 255, 1}), {BYTE_CHOICE_INDEX{choices}, BYTE_CHOICE_INDEX{choices}}}); - const auto expected = sourcemeta::core::parse("[ true, false, 5 ]"); + const auto expected = sourcemeta::core::parse_json("[ true, false, 5 ]"); EXPECT_EQ(result, expected); } @@ -183,7 +183,7 @@ TEST(JSONBinPack_Decoder, FLOOR_TYPED_ARRAY_complex) { {BYTE_CHOICE_INDEX{choices}, FLOOR_VARINT_PREFIX_UTF8_STRING_SHARED{3}}}); - const auto expected = sourcemeta::core::parse("[ true, \"foo\", 1000 ]"); + const auto expected = sourcemeta::core::parse_json("[ true, \"foo\", 1000 ]"); EXPECT_EQ(result, expected); } @@ -202,7 +202,7 @@ TEST(JSONBinPack_Decoder, std::make_shared(BYTE_CHOICE_INDEX{std::move(choices)}), {}}); - const auto expected = sourcemeta::core::parse("[ true, false, true ]"); + const auto expected = sourcemeta::core::parse_json("[ true, false, true ]"); EXPECT_EQ(result, expected); } @@ -220,7 +220,7 @@ TEST(JSONBinPack_Decoder, ROOF_TYPED_ARRAY_true_false_5__1_3) { std::make_shared(BOUNDED_MULTIPLE_8BITS_ENUM_FIXED{0, 255, 1}), {BYTE_CHOICE_INDEX{choices}, BYTE_CHOICE_INDEX{choices}}}); - const auto expected = sourcemeta::core::parse("[ true, false, 5 ]"); + const auto expected = sourcemeta::core::parse_json("[ true, false, 5 ]"); EXPECT_EQ(result, expected); } @@ -238,6 +238,6 @@ TEST(JSONBinPack_Decoder, ROOF_TYPED_ARRAY_complex) { std::make_shared(FLOOR_MULTIPLE_ENUM_VARINT{-2, 4}), {BYTE_CHOICE_INDEX{choices}, ROOF_VARINT_PREFIX_UTF8_STRING_SHARED{3}}}); - const auto expected = sourcemeta::core::parse("[ true, \"foo\", 1000 ]"); + const auto expected = sourcemeta::core::parse_json("[ true, \"foo\", 1000 ]"); EXPECT_EQ(result, expected); } diff --git a/test/runtime/encode_any_test.cc b/test/runtime/encode_any_test.cc index 8c9e22fa..c1333885 100644 --- a/test/runtime/encode_any_test.cc +++ b/test/runtime/encode_any_test.cc @@ -59,16 +59,16 @@ TEST(JSONBinPack_Encoder, BYTE_CHOICE_INDEX_bar__foo_bar_bar) { TEST(JSONBinPack_Encoder, BYTE_CHOICE_INDEX_non_scalar_1) { const sourcemeta::core::JSON document = - sourcemeta::core::parse("{ \"foo\": 1 }"); + sourcemeta::core::parse_json("{ \"foo\": 1 }"); OutputByteStream stream{}; sourcemeta::jsonbinpack::Encoder encoder{stream}; std::vector choices; - choices.push_back(sourcemeta::core::parse("{ \"foo\": 2 }")); - choices.push_back(sourcemeta::core::parse("{}")); - choices.push_back(sourcemeta::core::parse("[ 1, 2, 3 ]")); - choices.push_back(sourcemeta::core::parse("{ \"foo\": 1 }")); - choices.push_back(sourcemeta::core::parse("{ \"bar\": 1 }")); + choices.push_back(sourcemeta::core::parse_json("{ \"foo\": 2 }")); + choices.push_back(sourcemeta::core::parse_json("{}")); + choices.push_back(sourcemeta::core::parse_json("[ 1, 2, 3 ]")); + choices.push_back(sourcemeta::core::parse_json("{ \"foo\": 1 }")); + choices.push_back(sourcemeta::core::parse_json("{ \"bar\": 1 }")); encoder.BYTE_CHOICE_INDEX(document, {std::move(choices)}); EXPECT_BYTES(stream, {0x03}); @@ -124,16 +124,16 @@ TEST(JSONBinPack_Encoder, LARGE_CHOICE_INDEX_bar__foo_bar_bar) { TEST(JSONBinPack_Encoder, LARGE_CHOICE_INDEX_non_scalar_1) { const sourcemeta::core::JSON document = - sourcemeta::core::parse("{ \"foo\": 1 }"); + sourcemeta::core::parse_json("{ \"foo\": 1 }"); OutputByteStream stream{}; sourcemeta::jsonbinpack::Encoder encoder{stream}; std::vector choices; - choices.push_back(sourcemeta::core::parse("{ \"foo\": 2 }")); - choices.push_back(sourcemeta::core::parse("{}")); - choices.push_back(sourcemeta::core::parse("[ 1, 2, 3 ]")); - choices.push_back(sourcemeta::core::parse("{ \"foo\": 1 }")); - choices.push_back(sourcemeta::core::parse("{ \"bar\": 1 }")); + choices.push_back(sourcemeta::core::parse_json("{ \"foo\": 2 }")); + choices.push_back(sourcemeta::core::parse_json("{}")); + choices.push_back(sourcemeta::core::parse_json("[ 1, 2, 3 ]")); + choices.push_back(sourcemeta::core::parse_json("{ \"foo\": 1 }")); + choices.push_back(sourcemeta::core::parse_json("{ \"bar\": 1 }")); encoder.LARGE_CHOICE_INDEX(document, {std::move(choices)}); EXPECT_BYTES(stream, {0x03}); @@ -202,16 +202,16 @@ TEST(JSONBinPack_Encoder, TOP_LEVEL_BYTE_CHOICE_INDEX_bar__foo_bar_bar) { TEST(JSONBinPack_Encoder, TOP_LEVEL_BYTE_CHOICE_INDEX_non_scalar_1) { const sourcemeta::core::JSON document = - sourcemeta::core::parse("{ \"foo\": 1 }"); + sourcemeta::core::parse_json("{ \"foo\": 1 }"); OutputByteStream stream{}; sourcemeta::jsonbinpack::Encoder encoder{stream}; std::vector choices; - choices.push_back(sourcemeta::core::parse("{ \"foo\": 2 }")); - choices.push_back(sourcemeta::core::parse("{}")); - choices.push_back(sourcemeta::core::parse("[ 1, 2, 3 ]")); - choices.push_back(sourcemeta::core::parse("{ \"foo\": 1 }")); - choices.push_back(sourcemeta::core::parse("{ \"bar\": 1 }")); + choices.push_back(sourcemeta::core::parse_json("{ \"foo\": 2 }")); + choices.push_back(sourcemeta::core::parse_json("{}")); + choices.push_back(sourcemeta::core::parse_json("[ 1, 2, 3 ]")); + choices.push_back(sourcemeta::core::parse_json("{ \"foo\": 1 }")); + choices.push_back(sourcemeta::core::parse_json("{ \"bar\": 1 }")); encoder.TOP_LEVEL_BYTE_CHOICE_INDEX(document, {std::move(choices)}); EXPECT_BYTES(stream, {0x02}); @@ -227,7 +227,7 @@ TEST(JSONBinPack_Encoder, CONST_NONE_scalar) { TEST(JSONBinPack_Encoder, CONST_NONE_complex) { const sourcemeta::core::JSON document = - sourcemeta::core::parse("{ \"foo\": 1 }"); + sourcemeta::core::parse_json("{ \"foo\": 1 }"); OutputByteStream stream{}; sourcemeta::jsonbinpack::Encoder encoder{stream}; encoder.CONST_NONE(document, {document}); @@ -889,7 +889,7 @@ TEST(JSONBinPack_Encoder, TEST(JSONBinPack_Encoder, ANY_PACKED_TYPE_TAG_BYTE_PREFIX__foo_true_2000) { using namespace sourcemeta::jsonbinpack; sourcemeta::core::JSON document = - sourcemeta::core::parse("[ \"foo\", true, 2000 ]"); + sourcemeta::core::parse_json("[ \"foo\", true, 2000 ]"); OutputByteStream stream{}; Encoder encoder{stream}; @@ -967,7 +967,7 @@ TEST(JSONBinPack_Encoder, ANY_PACKED_TYPE_TAG_BYTE_PREFIX__object_foo_bar_baz_1) { using namespace sourcemeta::jsonbinpack; const sourcemeta::core::JSON document = - sourcemeta::core::parse("{ \"foo\": \"bar\", \"baz\": 1 }"); + sourcemeta::core::parse_json("{ \"foo\": \"bar\", \"baz\": 1 }"); OutputByteStream stream{}; Encoder encoder{stream}; diff --git a/test/runtime/encode_array_test.cc b/test/runtime/encode_array_test.cc index 0d903a96..7b0c6db3 100644 --- a/test/runtime/encode_array_test.cc +++ b/test/runtime/encode_array_test.cc @@ -10,7 +10,7 @@ TEST(JSONBinPack_Encoder, FIXED_TYPED_ARRAY_0_1_2__no_prefix_encodings) { using namespace sourcemeta::jsonbinpack; - sourcemeta::core::JSON document = sourcemeta::core::parse("[ 0, 1, 2 ]"); + sourcemeta::core::JSON document = sourcemeta::core::parse_json("[ 0, 1, 2 ]"); OutputByteStream stream{}; Encoder encoder{stream}; @@ -24,7 +24,8 @@ TEST(JSONBinPack_Encoder, FIXED_TYPED_ARRAY_0_1_2__no_prefix_encodings) { TEST(JSONBinPack_Encoder, FIXED_TYPED_ARRAY_0_1_true__semityped) { using namespace sourcemeta::jsonbinpack; - sourcemeta::core::JSON document = sourcemeta::core::parse("[ 0, 1, true ]"); + sourcemeta::core::JSON document = + sourcemeta::core::parse_json("[ 0, 1, true ]"); OutputByteStream stream{}; std::vector choices; @@ -61,7 +62,7 @@ TEST(JSONBinPack_Encoder, BOUNDED_8BITS_TYPED_ARRAY_true_false_true__no_prefix_encodings) { using namespace sourcemeta::jsonbinpack; sourcemeta::core::JSON document = - sourcemeta::core::parse("[ true, false, true ]"); + sourcemeta::core::parse_json("[ true, false, true ]"); OutputByteStream stream{}; std::vector choices; @@ -82,7 +83,7 @@ TEST(JSONBinPack_Encoder, BOUNDED_8BITS_TYPED_ARRAY_true_false_true__same_max_min) { using namespace sourcemeta::jsonbinpack; sourcemeta::core::JSON document = - sourcemeta::core::parse("[ true, false, true ]"); + sourcemeta::core::parse_json("[ true, false, true ]"); OutputByteStream stream{}; std::vector choices; @@ -102,7 +103,7 @@ TEST(JSONBinPack_Encoder, TEST(JSONBinPack_Encoder, BOUNDED_8BITS_TYPED_ARRAY_true_false_5__1_3) { using namespace sourcemeta::jsonbinpack; sourcemeta::core::JSON document = - sourcemeta::core::parse("[ true, false, 5 ]"); + sourcemeta::core::parse_json("[ true, false, 5 ]"); OutputByteStream stream{}; std::vector choices; @@ -122,7 +123,7 @@ TEST(JSONBinPack_Encoder, BOUNDED_8BITS_TYPED_ARRAY_true_false_5__1_3) { TEST(JSONBinPack_Encoder, BOUNDED_8BITS_TYPED_ARRAY_complex) { using namespace sourcemeta::jsonbinpack; sourcemeta::core::JSON document = - sourcemeta::core::parse("[ true, \"foo\", 1000 ]"); + sourcemeta::core::parse_json("[ true, \"foo\", 1000 ]"); OutputByteStream stream{}; std::vector choices; @@ -143,7 +144,7 @@ TEST(JSONBinPack_Encoder, FLOOR_TYPED_ARRAY_true_false_true__no_prefix_encodings) { using namespace sourcemeta::jsonbinpack; sourcemeta::core::JSON document = - sourcemeta::core::parse("[ true, false, true ]"); + sourcemeta::core::parse_json("[ true, false, true ]"); OutputByteStream stream{}; std::vector choices; @@ -162,7 +163,7 @@ TEST(JSONBinPack_Encoder, TEST(JSONBinPack_Encoder, FLOOR_TYPED_ARRAY_true_false_5__1_3) { using namespace sourcemeta::jsonbinpack; sourcemeta::core::JSON document = - sourcemeta::core::parse("[ true, false, 5 ]"); + sourcemeta::core::parse_json("[ true, false, 5 ]"); OutputByteStream stream{}; std::vector choices; @@ -181,7 +182,7 @@ TEST(JSONBinPack_Encoder, FLOOR_TYPED_ARRAY_true_false_5__1_3) { TEST(JSONBinPack_Encoder, FLOOR_TYPED_ARRAY_complex) { using namespace sourcemeta::jsonbinpack; sourcemeta::core::JSON document = - sourcemeta::core::parse("[ true, \"foo\", 1000 ]"); + sourcemeta::core::parse_json("[ true, \"foo\", 1000 ]"); OutputByteStream stream{}; std::vector choices; @@ -201,7 +202,7 @@ TEST(JSONBinPack_Encoder, ROOF_TYPED_ARRAY_true_false_true__no_prefix_encodings) { using namespace sourcemeta::jsonbinpack; sourcemeta::core::JSON document = - sourcemeta::core::parse("[ true, false, true ]"); + sourcemeta::core::parse_json("[ true, false, true ]"); OutputByteStream stream{}; std::vector choices; @@ -220,7 +221,7 @@ TEST(JSONBinPack_Encoder, TEST(JSONBinPack_Encoder, ROOF_TYPED_ARRAY_true_false_5__1_3) { using namespace sourcemeta::jsonbinpack; sourcemeta::core::JSON document = - sourcemeta::core::parse("[ true, false, 5 ]"); + sourcemeta::core::parse_json("[ true, false, 5 ]"); OutputByteStream stream{}; std::vector choices; @@ -239,7 +240,7 @@ TEST(JSONBinPack_Encoder, ROOF_TYPED_ARRAY_true_false_5__1_3) { TEST(JSONBinPack_Encoder, ROOF_TYPED_ARRAY_complex) { using namespace sourcemeta::jsonbinpack; sourcemeta::core::JSON document = - sourcemeta::core::parse("[ true, \"foo\", 1000 ]"); + sourcemeta::core::parse_json("[ true, \"foo\", 1000 ]"); OutputByteStream stream{}; std::vector choices; diff --git a/test/runtime/encode_object_test.cc b/test/runtime/encode_object_test.cc index 7c095786..51eff8bf 100644 --- a/test/runtime/encode_object_test.cc +++ b/test/runtime/encode_object_test.cc @@ -10,7 +10,7 @@ TEST(JSONBinPack_Encoder, FIXED_TYPED_ARBITRARY_OBJECT__no_length_string__integer) { using namespace sourcemeta::jsonbinpack; const sourcemeta::core::JSON document = - sourcemeta::core::parse("{\"foo\":1,\"bar\":2}"); + sourcemeta::core::parse_json("{\"foo\":1,\"bar\":2}"); OutputByteStream stream{}; Encoder encoder{stream}; @@ -41,7 +41,7 @@ TEST(JSONBinPack_Encoder, VARINT_TYPED_ARBITRARY_OBJECT__no_length_string__integer) { using namespace sourcemeta::jsonbinpack; const sourcemeta::core::JSON document = - sourcemeta::core::parse("{\"foo\":1,\"bar\":2}"); + sourcemeta::core::parse_json("{\"foo\":1,\"bar\":2}"); OutputByteStream stream{}; Encoder encoder{stream}; diff --git a/test/runtime/v1_any_loader_test.cc b/test/runtime/v1_any_loader_test.cc index f341b934..6aa13e28 100644 --- a/test/runtime/v1_any_loader_test.cc +++ b/test/runtime/v1_any_loader_test.cc @@ -6,7 +6,7 @@ #include TEST(JSONBinPack_Loader_v1, BYTE_CHOICE_INDEX_scalars) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "BYTE_CHOICE_INDEX", "binpackOptions": { @@ -27,7 +27,7 @@ TEST(JSONBinPack_Loader_v1, BYTE_CHOICE_INDEX_scalars) { } TEST(JSONBinPack_Loader_v1, LARGE_CHOICE_INDEX_scalars) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "LARGE_CHOICE_INDEX", "binpackOptions": { @@ -48,7 +48,7 @@ TEST(JSONBinPack_Loader_v1, LARGE_CHOICE_INDEX_scalars) { } TEST(JSONBinPack_Loader_v1, TOP_LEVEL_BYTE_CHOICE_INDEX_scalars) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "TOP_LEVEL_BYTE_CHOICE_INDEX", "binpackOptions": { @@ -69,7 +69,7 @@ TEST(JSONBinPack_Loader_v1, TOP_LEVEL_BYTE_CHOICE_INDEX_scalars) { } TEST(JSONBinPack_Loader_v1, CONST_NONE_scalar) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "CONST_NONE", "binpackOptions": { @@ -84,7 +84,7 @@ TEST(JSONBinPack_Loader_v1, CONST_NONE_scalar) { } TEST(JSONBinPack_Loader_v1, ANY_PACKED_TYPE_TAG_BYTE_PREFIX) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ANY_PACKED_TYPE_TAG_BYTE_PREFIX", "binpackOptions": {} diff --git a/test/runtime/v1_array_loader_test.cc b/test/runtime/v1_array_loader_test.cc index 32870068..9d08bd9e 100644 --- a/test/runtime/v1_array_loader_test.cc +++ b/test/runtime/v1_array_loader_test.cc @@ -6,7 +6,7 @@ #include TEST(JSONBinPack_Loader_v1, FIXED_TYPED_ARRAY_enum_integer_number) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "FIXED_TYPED_ARRAY", "binpackOptions": { @@ -64,7 +64,7 @@ TEST(JSONBinPack_Loader_v1, FIXED_TYPED_ARRAY_enum_integer_number) { } TEST(JSONBinPack_Loader_v1, BOUNDED_8BITS_TYPED_ARRAY_enum_integer_number) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "BOUNDED_8BITS_TYPED_ARRAY", "binpackOptions": { @@ -129,7 +129,7 @@ TEST(JSONBinPack_Loader_v1, BOUNDED_8BITS_TYPED_ARRAY_enum_integer_number) { } TEST(JSONBinPack_Loader_v1, FLOOR_TYPED_ARRAY_enum_integer_number) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "FLOOR_TYPED_ARRAY", "binpackOptions": { @@ -187,7 +187,7 @@ TEST(JSONBinPack_Loader_v1, FLOOR_TYPED_ARRAY_enum_integer_number) { } TEST(JSONBinPack_Loader_v1, ROOF_TYPED_ARRAY_enum_integer_number) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ROOF_TYPED_ARRAY", "binpackOptions": { diff --git a/test/runtime/v1_integer_loader_test.cc b/test/runtime/v1_integer_loader_test.cc index bd9b4a10..3c8143d9 100644 --- a/test/runtime/v1_integer_loader_test.cc +++ b/test/runtime/v1_integer_loader_test.cc @@ -6,7 +6,7 @@ #include TEST(JSONBinPack_Loader_v1, BOUNDED_MULTIPLE_8BITS_ENUM_FIXED_positive) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "BOUNDED_MULTIPLE_8BITS_ENUM_FIXED", "binpackOptions": { @@ -26,7 +26,7 @@ TEST(JSONBinPack_Loader_v1, BOUNDED_MULTIPLE_8BITS_ENUM_FIXED_positive) { } TEST(JSONBinPack_Loader_v1, FLOOR_MULTIPLE_ENUM_VARINT_positive) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "FLOOR_MULTIPLE_ENUM_VARINT", "binpackOptions": { @@ -43,7 +43,7 @@ TEST(JSONBinPack_Loader_v1, FLOOR_MULTIPLE_ENUM_VARINT_positive) { } TEST(JSONBinPack_Loader_v1, ROOF_MULTIPLE_MIRROR_ENUM_VARINT_positive) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ROOF_MULTIPLE_MIRROR_ENUM_VARINT", "binpackOptions": { @@ -60,7 +60,7 @@ TEST(JSONBinPack_Loader_v1, ROOF_MULTIPLE_MIRROR_ENUM_VARINT_positive) { } TEST(JSONBinPack_Loader_v1, ARBITRARY_MULTIPLE_ZIGZAG_VARINT_unit_multiplier) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ARBITRARY_MULTIPLE_ZIGZAG_VARINT", "binpackOptions": { diff --git a/test/runtime/v1_loader_test.cc b/test/runtime/v1_loader_test.cc index f96547a7..51b4e78e 100644 --- a/test/runtime/v1_loader_test.cc +++ b/test/runtime/v1_loader_test.cc @@ -4,7 +4,7 @@ #include TEST(JSONBinPack_Loader_v1, invalid_encoding_name) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "FOO_BAR", "binpackOptions": {} diff --git a/test/runtime/v1_number_loader_test.cc b/test/runtime/v1_number_loader_test.cc index b489c5d3..ef34cc10 100644 --- a/test/runtime/v1_number_loader_test.cc +++ b/test/runtime/v1_number_loader_test.cc @@ -6,7 +6,7 @@ #include TEST(JSONBinPack_Loader_v1, DOUBLE_VARINT_TUPLE) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "DOUBLE_VARINT_TUPLE", "binpackOptions": {} diff --git a/test/runtime/v1_string_loader_test.cc b/test/runtime/v1_string_loader_test.cc index cedae6c5..5c929f5e 100644 --- a/test/runtime/v1_string_loader_test.cc +++ b/test/runtime/v1_string_loader_test.cc @@ -6,7 +6,7 @@ #include TEST(JSONBinPack_Loader_v1, UTF8_STRING_NO_LENGTH_3) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "UTF8_STRING_NO_LENGTH", "binpackOptions": { @@ -21,7 +21,7 @@ TEST(JSONBinPack_Loader_v1, UTF8_STRING_NO_LENGTH_3) { } TEST(JSONBinPack_Loader_v1, FLOOR_VARINT_PREFIX_UTF8_STRING_SHARED_3) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "FLOOR_VARINT_PREFIX_UTF8_STRING_SHARED", "binpackOptions": { @@ -38,7 +38,7 @@ TEST(JSONBinPack_Loader_v1, FLOOR_VARINT_PREFIX_UTF8_STRING_SHARED_3) { } TEST(JSONBinPack_Loader_v1, ROOF_VARINT_PREFIX_UTF8_STRING_SHARED_3) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "ROOF_VARINT_PREFIX_UTF8_STRING_SHARED", "binpackOptions": { @@ -54,7 +54,7 @@ TEST(JSONBinPack_Loader_v1, ROOF_VARINT_PREFIX_UTF8_STRING_SHARED_3) { } TEST(JSONBinPack_Loader_v1, BOUNDED_8BIT_PREFIX_UTF8_STRING_SHARED_open) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "BOUNDED_8BIT_PREFIX_UTF8_STRING_SHARED", "binpackOptions": { @@ -74,7 +74,7 @@ TEST(JSONBinPack_Loader_v1, BOUNDED_8BIT_PREFIX_UTF8_STRING_SHARED_open) { } TEST(JSONBinPack_Loader_v1, RFC3339_DATE_INTEGER_TRIPLET) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "RFC3339_DATE_INTEGER_TRIPLET", "binpackOptions": {} @@ -86,7 +86,7 @@ TEST(JSONBinPack_Loader_v1, RFC3339_DATE_INTEGER_TRIPLET) { } TEST(JSONBinPack_Loader_v1, PREFIX_VARINT_LENGTH_STRING_SHARED) { - const sourcemeta::core::JSON input = sourcemeta::core::parse(R"JSON({ + const sourcemeta::core::JSON input = sourcemeta::core::parse_json(R"JSON({ "$schema": "tag:sourcemeta.com,2024:jsonbinpack/encoding/v1", "binpackEncoding": "PREFIX_VARINT_LENGTH_STRING_SHARED", "binpackOptions": {} diff --git a/vendor/core/cmake/common/targets/executable.cmake b/vendor/core/cmake/common/targets/executable.cmake index 8b00bb45..4f5db98f 100644 --- a/vendor/core/cmake/common/targets/executable.cmake +++ b/vendor/core/cmake/common/targets/executable.cmake @@ -1,6 +1,6 @@ function(sourcemeta_executable) cmake_parse_arguments(SOURCEMETA_EXECUTABLE "" - "NAMESPACE;PROJECT;NAME;FOLDER;VARIANT;OUTPUT" "SOURCES" ${ARGN}) + "NAMESPACE;PROJECT;NAME;VARIANT;OUTPUT" "SOURCES" ${ARGN}) if(NOT SOURCEMETA_EXECUTABLE_PROJECT) message(FATAL_ERROR "You must pass the project name using the PROJECT option") @@ -8,17 +8,16 @@ function(sourcemeta_executable) if(NOT SOURCEMETA_EXECUTABLE_NAME) message(FATAL_ERROR "You must pass the executable name using the NAME option") endif() - if(NOT SOURCEMETA_EXECUTABLE_FOLDER) - message(FATAL_ERROR "You must pass the folder name using the FOLDER option") - endif() if(NOT SOURCEMETA_EXECUTABLE_SOURCES) message(FATAL_ERROR "You must pass the sources list using the SOURCES option") endif() if(SOURCEMETA_EXECUTABLE_NAMESPACE) set(TARGET_NAME "${SOURCEMETA_EXECUTABLE_NAMESPACE}_${SOURCEMETA_EXECUTABLE_PROJECT}_${SOURCEMETA_EXECUTABLE_NAME}") + set(FOLDER_NAME "${SOURCEMETA_EXECUTABLE_NAMESPACE}/${SOURCEMETA_EXECUTABLE_PROJECT}/${SOURCEMETA_EXECUTABLE_NAME}") else() set(TARGET_NAME "${SOURCEMETA_EXECUTABLE_PROJECT}_${SOURCEMETA_EXECUTABLE_NAME}") + set(FOLDER_NAME "${SOURCEMETA_EXECUTABLE_PROJECT}/${SOURCEMETA_EXECUTABLE_NAME}") endif() if(SOURCEMETA_EXECUTABLE_VARIANT) @@ -31,5 +30,5 @@ function(sourcemeta_executable) add_executable("${TARGET_NAME}" ${SOURCEMETA_EXECUTABLE_SOURCES}) sourcemeta_add_default_options(PRIVATE ${TARGET_NAME}) - set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${SOURCEMETA_EXECUTABLE_FOLDER}") + set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${FOLDER_NAME}") endfunction() diff --git a/vendor/core/cmake/common/targets/googlebenchmark.cmake b/vendor/core/cmake/common/targets/googlebenchmark.cmake index 10c61f1e..d911a93b 100644 --- a/vendor/core/cmake/common/targets/googlebenchmark.cmake +++ b/vendor/core/cmake/common/targets/googlebenchmark.cmake @@ -1,26 +1,25 @@ function(sourcemeta_googlebenchmark) cmake_parse_arguments(SOURCEMETA_GOOGLEBENCHMARK "" - "NAMESPACE;PROJECT;FOLDER" "SOURCES" ${ARGN}) + "NAMESPACE;PROJECT" "SOURCES" ${ARGN}) if(NOT SOURCEMETA_GOOGLEBENCHMARK_PROJECT) message(FATAL_ERROR "You must pass the project name using the PROJECT option") endif() - if(NOT SOURCEMETA_GOOGLEBENCHMARK_FOLDER) - message(FATAL_ERROR "You must pass the folder name using the FOLDER option") - endif() if(NOT SOURCEMETA_GOOGLEBENCHMARK_SOURCES) message(FATAL_ERROR "You must pass the sources list using the SOURCES option") endif() if(SOURCEMETA_GOOGLEBENCHMARK_NAMESPACE) set(TARGET_NAME "${SOURCEMETA_GOOGLEBENCHMARK_NAMESPACE}_${SOURCEMETA_GOOGLEBENCHMARK_PROJECT}_benchmark") + set(FOLDER_NAME "${SOURCEMETA_GOOGLEBENCHMARK_NAMESPACE}/${SOURCEMETA_GOOGLEBENCHMARK_PROJECT}") else() set(TARGET_NAME "${SOURCEMETA_GOOGLEBENCHMARK_PROJECT}_benchmark") + set(FOLDER_NAME "${SOURCEMETA_GOOGLEBENCHMARK_PROJECT}") endif() add_executable("${TARGET_NAME}" ${SOURCEMETA_GOOGLEBENCHMARK_SOURCES}) sourcemeta_add_default_options(PRIVATE ${TARGET_NAME}) - set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${SOURCEMETA_GOOGLEBENCHMARK_FOLDER}") + set_target_properties("${TARGET_NAME}" PROPERTIES FOLDER "${FOLDER_NAME}") target_link_libraries("${TARGET_NAME}" PRIVATE benchmark::benchmark) target_link_libraries("${TARGET_NAME}" PRIVATE benchmark::benchmark_main) endfunction() diff --git a/vendor/core/cmake/common/targets/googletest.cmake b/vendor/core/cmake/common/targets/googletest.cmake index 101b5063..176d2872 100644 --- a/vendor/core/cmake/common/targets/googletest.cmake +++ b/vendor/core/cmake/common/targets/googletest.cmake @@ -1,6 +1,6 @@ function(sourcemeta_googletest) cmake_parse_arguments(SOURCEMETA_GOOGLETEST "" - "NAMESPACE;PROJECT;NAME;FOLDER;VARIANT" "SOURCES" ${ARGN}) + "NAMESPACE;PROJECT;NAME;VARIANT" "SOURCES" ${ARGN}) if(SOURCEMETA_GOOGLETEST_VARIANT) set(TARGET_VARIANT "${SOURCEMETA_GOOGLETEST_VARIANT}_unit") @@ -12,7 +12,6 @@ function(sourcemeta_googletest) NAMESPACE "${SOURCEMETA_GOOGLETEST_NAMESPACE}" PROJECT "${SOURCEMETA_GOOGLETEST_PROJECT}" NAME "${SOURCEMETA_GOOGLETEST_NAME}" - FOLDER "${SOURCEMETA_GOOGLETEST_FOLDER}" VARIANT "${TARGET_VARIANT}" SOURCES "${SOURCEMETA_GOOGLETEST_SOURCES}" OUTPUT TARGET_NAME) diff --git a/vendor/core/cmake/common/targets/library.cmake b/vendor/core/cmake/common/targets/library.cmake index f58a153d..e2f2ebe6 100644 --- a/vendor/core/cmake/common/targets/library.cmake +++ b/vendor/core/cmake/common/targets/library.cmake @@ -1,6 +1,6 @@ function(sourcemeta_library) cmake_parse_arguments(SOURCEMETA_LIBRARY "" - "NAMESPACE;PROJECT;NAME;FOLDER;VARIANT" "PRIVATE_HEADERS;SOURCES" ${ARGN}) + "NAMESPACE;PROJECT;NAME;VARIANT" "PRIVATE_HEADERS;SOURCES" ${ARGN}) if(NOT SOURCEMETA_LIBRARY_PROJECT) message(FATAL_ERROR "You must pass the project name using the PROJECT option") @@ -8,9 +8,6 @@ function(sourcemeta_library) if(NOT SOURCEMETA_LIBRARY_NAME) message(FATAL_ERROR "You must pass the library name using the NAME option") endif() - if(NOT SOURCEMETA_LIBRARY_FOLDER) - message(FATAL_ERROR "You must pass the folder name using the FOLDER option") - endif() if(SOURCEMETA_LIBRARY_NAMESPACE) set(INCLUDE_PREFIX "include/${SOURCEMETA_LIBRARY_NAMESPACE}/${SOURCEMETA_LIBRARY_PROJECT}") @@ -42,9 +39,11 @@ function(sourcemeta_library) if(SOURCEMETA_LIBRARY_NAMESPACE) set(TARGET_NAME "${SOURCEMETA_LIBRARY_NAMESPACE}_${SOURCEMETA_LIBRARY_PROJECT}_${SOURCEMETA_LIBRARY_NAME}") set(ALIAS_NAME "${SOURCEMETA_LIBRARY_NAMESPACE}::${SOURCEMETA_LIBRARY_PROJECT}::${SOURCEMETA_LIBRARY_NAME}") + set(FOLDER_NAME "${SOURCEMETA_LIBRARY_NAMESPACE}/${SOURCEMETA_LIBRARY_PROJECT}/${SOURCEMETA_LIBRARY_NAME}") else() set(TARGET_NAME "${SOURCEMETA_LIBRARY_PROJECT}_${SOURCEMETA_LIBRARY_NAME}") set(ALIAS_NAME "${SOURCEMETA_LIBRARY_PROJECT}::${SOURCEMETA_LIBRARY_NAME}") + set(FOLDER_NAME "${SOURCEMETA_LIBRARY_PROJECT}/${SOURCEMETA_LIBRARY_NAME}") endif() if(SOURCEMETA_LIBRARY_VARIANT) @@ -92,7 +91,7 @@ function(sourcemeta_library) PUBLIC_HEADER "${PUBLIC_HEADER}" PRIVATE_HEADER "${ABSOLUTE_PRIVATE_HEADERS}" EXPORT_NAME "${export_name}" - FOLDER "${SOURCEMETA_LIBRARY_FOLDER}") + FOLDER "${FOLDER_NAME}") else() set_target_properties(${TARGET_NAME} PROPERTIES @@ -100,7 +99,7 @@ function(sourcemeta_library) PUBLIC_HEADER "${PUBLIC_HEADER}" PRIVATE_HEADER "${ABSOLUTE_PRIVATE_HEADERS}" EXPORT_NAME "${export_name}" - FOLDER "${SOURCEMETA_LIBRARY_FOLDER}") + FOLDER "${FOLDER_NAME}") endif() if(SOURCEMETA_LIBRARY_SOURCES) diff --git a/vendor/core/src/core/json/CMakeLists.txt b/vendor/core/src/core/json/CMakeLists.txt index ca9dd84d..1d96e489 100644 --- a/vendor/core/src/core/json/CMakeLists.txt +++ b/vendor/core/src/core/json/CMakeLists.txt @@ -1,5 +1,4 @@ sourcemeta_library(NAMESPACE sourcemeta PROJECT core NAME json - FOLDER "Core/JSON" PRIVATE_HEADERS array.h error.h object.h value.h hash.h SOURCES grammar.h parser.h stringify.h json.cc json_value.cc) diff --git a/vendor/core/src/core/json/include/sourcemeta/core/json.h b/vendor/core/src/core/json/include/sourcemeta/core/json.h index 40e48b5b..c901afb0 100644 --- a/vendor/core/src/core/json/include/sourcemeta/core/json.h +++ b/vendor/core/src/core/json/include/sourcemeta/core/json.h @@ -12,7 +12,6 @@ #include // std::uint64_t #include // std::filesystem #include // std::basic_ifstream -#include // std::function #include // std::basic_istream #include // std::basic_ostream #include // std::basic_string @@ -29,22 +28,6 @@ namespace sourcemeta::core { -/// @ingroup json -using Hash = FastHash; - -/// @ingroup json -enum class CallbackPhase { Pre, Post }; - -/// @ingroup json -/// -/// An optional callback that can be passed to parsing functions to obtain -/// metadata during the parsing process. Each subdocument will emit 2 events: a -/// "pre" and a "post". When parsing object and arrays, during the "pre" event, -/// the value corresponds to the property name or index, respectively. -using Callback = std::function; - /// @ingroup json /// /// Create a JSON document from a C++ standard input stream. For example, a JSON @@ -57,14 +40,14 @@ using Callback = std::function &stream, - const Callback &callback = nullptr) -> JSON; +auto parse_json(std::basic_istream &stream, + const JSON::ParseCallback &callback = nullptr) -> JSON; /// @ingroup json /// @@ -76,14 +59,14 @@ auto parse(std::basic_istream &stream, /// #include /// /// const sourcemeta::core::JSON document = -/// sourcemeta::core::parse("[ 1, 2, 3 ]"); +/// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// assert(document.is_array()); /// ``` /// -/// If parsing fails, sourcemeta::core::ParseError will be thrown. +/// If parsing fails, sourcemeta::core::JSONParseError will be thrown. SOURCEMETA_CORE_JSON_EXPORT -auto parse(const std::basic_string &input, - const Callback &callback = nullptr) -> JSON; +auto parse_json(const std::basic_string &input, + const JSON::ParseCallback &callback = nullptr) -> JSON; /// @ingroup json /// @@ -99,13 +82,13 @@ auto parse(const std::basic_string &input, /// std::uint64_t line{1}; /// std::uint64_t column{0}; /// const sourcemeta::core::JSON document = -/// sourcemeta::core::parse(stream, line, column); +/// sourcemeta::core::parse_json(stream, line, column); /// assert(document.is_array()); /// ``` SOURCEMETA_CORE_JSON_EXPORT -auto parse(std::basic_istream &stream, - std::uint64_t &line, std::uint64_t &column, - const Callback &callback = nullptr) -> JSON; +auto parse_json(std::basic_istream &stream, + std::uint64_t &line, std::uint64_t &column, + const JSON::ParseCallback &callback = nullptr) -> JSON; /// @ingroup json /// @@ -119,52 +102,55 @@ auto parse(std::basic_istream &stream, /// std::uint64_t line{1}; /// std::uint64_t column{0}; /// const sourcemeta::core::JSON document = -/// sourcemeta::core::parse("[ 1, 2, 3 ]", line, column); +/// sourcemeta::core::parse_json("[ 1, 2, 3 ]", line, column); /// assert(document.is_array()); /// ``` SOURCEMETA_CORE_JSON_EXPORT -auto parse(const std::basic_string &input, - std::uint64_t &line, std::uint64_t &column, - const Callback &callback = nullptr) -> JSON; +auto parse_json(const std::basic_string &input, + std::uint64_t &line, std::uint64_t &column, + const JSON::ParseCallback &callback = nullptr) -> JSON; /// @ingroup json /// -/// A convenience function to read a document from a file. For example: +/// A convenience function to create a JSON document from a file. For example: /// /// ```cpp /// #include /// #include /// #include /// -/// auto stream = sourcemeta::core::read_file("/tmp/foo.json"); -/// const auto document = sourcemeta::core::parse(stream); +/// const sourcemeta::core::JSON document = +/// sourcemeta::core::read_json("/tmp/foo.json"); /// sourcemeta::core::stringify(document, std::cout); /// std::cout << std::endl; /// ``` /// -/// If parsing fails, sourcemeta::core::ParseError will be thrown. +/// If parsing fails, sourcemeta::core::JSONParseError will be thrown. SOURCEMETA_CORE_JSON_EXPORT -auto read_file(const std::filesystem::path &path) - -> std::basic_ifstream; +auto read_json(const std::filesystem::path &path) -> JSON; + +// TODO: Move this function to a system integration component, as it +// is not JSON specific /// @ingroup json /// -/// A convenience function to create a JSON document from a file. For example: +/// A convenience function to read a document from a file. For example: /// /// ```cpp /// #include /// #include /// #include /// -/// const sourcemeta::core::JSON document = -/// sourcemeta::core::from_file("/tmp/foo.json"); +/// auto stream = sourcemeta::core::read_file("/tmp/foo.json"); +/// const auto document = sourcemeta::core::parse_json(stream); /// sourcemeta::core::stringify(document, std::cout); /// std::cout << std::endl; /// ``` /// -/// If parsing fails, sourcemeta::core::ParseError will be thrown. +/// If parsing fails, sourcemeta::core::JSONParseError will be thrown. SOURCEMETA_CORE_JSON_EXPORT -auto from_file(const std::filesystem::path &path) -> JSON; +auto read_file(const std::filesystem::path &path) + -> std::basic_ifstream; /// @ingroup json /// @@ -177,7 +163,7 @@ auto from_file(const std::filesystem::path &path) -> JSON; /// #include /// /// const sourcemeta::core::JSON document = -/// sourcemeta::core::parse("[ 1, 2, 3 ]"); +/// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// std::ostringstream stream; /// sourcemeta::core::stringify(document, stream); /// std::cout << stream.str() << std::endl; @@ -198,7 +184,7 @@ auto stringify(const JSON &document, /// #include /// /// const sourcemeta::core::JSON document = -/// sourcemeta::core::parse("[ 1, 2, 3 ]"); +/// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// std::ostringstream stream; /// sourcemeta::core::prettify(document, stream); /// std::cout << stream.str() << std::endl; @@ -207,13 +193,6 @@ SOURCEMETA_CORE_JSON_EXPORT auto prettify(const JSON &document, std::basic_ostream &stream) -> void; -/// @ingroup json -/// -/// A comparison function between object property keys. -/// See https://en.cppreference.com/w/cpp/named_req/Compare -using KeyComparison = - std::function; - /// @ingroup json /// /// Stringify the input JSON document into a given C++ standard output stream in @@ -231,7 +210,7 @@ using KeyComparison = /// } /// /// const sourcemeta::core::JSON document = -/// sourcemeta::core::parse("{ \"foo\": 1, \"bar\": 2, \"baz\": 3 }"); +/// sourcemeta::core::parse_json("{ \"foo\": 1, \"bar\": 2, \"baz\": 3 }"); /// std::ostringstream stream; /// sourcemeta::core::stringify(document, stream, key_compare); /// std::cout << stream.str() << std::endl; @@ -239,7 +218,7 @@ using KeyComparison = SOURCEMETA_CORE_JSON_EXPORT auto stringify(const JSON &document, std::basic_ostream &stream, - const KeyComparison &compare) -> void; + const JSON::KeyComparison &compare) -> void; /// @ingroup json /// @@ -259,7 +238,7 @@ auto stringify(const JSON &document, /// } /// /// const sourcemeta::core::JSON document = -/// sourcemeta::core::parse("{ \"foo\": 1, \"bar\": 2, \"baz\": 3 }"); +/// sourcemeta::core::parse_json("{ \"foo\": 1, \"bar\": 2, \"baz\": 3 }"); /// std::ostringstream stream; /// sourcemeta::core::prettify(document, stream, key_compare); /// std::cout << stream.str() << std::endl; @@ -267,7 +246,7 @@ auto stringify(const JSON &document, SOURCEMETA_CORE_JSON_EXPORT auto prettify(const JSON &document, std::basic_ostream &stream, - const KeyComparison &compare) -> void; + const JSON::KeyComparison &compare) -> void; /// @ingroup json /// @@ -281,7 +260,7 @@ auto prettify(const JSON &document, /// #include /// /// const sourcemeta::core::JSON document = -/// sourcemeta::core::parse("[ 1, 2, 3 ]"); +/// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// std::ostringstream stream; /// stream << document; /// std::cout << stream.str() << std::endl; diff --git a/vendor/core/src/core/json/include/sourcemeta/core/json_error.h b/vendor/core/src/core/json/include/sourcemeta/core/json_error.h index 86fe5786..2eef13e3 100644 --- a/vendor/core/src/core/json/include/sourcemeta/core/json_error.h +++ b/vendor/core/src/core/json/include/sourcemeta/core/json_error.h @@ -20,10 +20,10 @@ namespace sourcemeta::core { /// @ingroup json /// This class represents a parsing error -class SOURCEMETA_CORE_JSON_EXPORT ParseError : public std::exception { +class SOURCEMETA_CORE_JSON_EXPORT JSONParseError : public std::exception { public: /// Create a parsing error - ParseError(const std::uint64_t line, const std::uint64_t column) + JSONParseError(const std::uint64_t line, const std::uint64_t column) : line_{line}, column_{column} {} [[nodiscard]] auto what() const noexcept -> const char * override { @@ -45,16 +45,17 @@ class SOURCEMETA_CORE_JSON_EXPORT ParseError : public std::exception { /// @ingroup json /// This class represents a parsing error occurring from parsing a file -class SOURCEMETA_CORE_JSON_EXPORT FileParseError : public ParseError { +class SOURCEMETA_CORE_JSON_EXPORT JSONFileParseError : public JSONParseError { public: /// Create a file parsing error - FileParseError(const std::filesystem::path &path, const std::uint64_t line, - const std::uint64_t column) - : ParseError{line, column}, path_{path} {} + JSONFileParseError(const std::filesystem::path &path, + const std::uint64_t line, const std::uint64_t column) + : JSONParseError{line, column}, path_{path} {} /// Create a file parsing error from a parse error - FileParseError(const std::filesystem::path &path, const ParseError &parent) - : ParseError{parent.line(), parent.column()}, path_{path} {} + JSONFileParseError(const std::filesystem::path &path, + const JSONParseError &parent) + : JSONParseError{parent.line(), parent.column()}, path_{path} {} /// Get the fiel path of the error [[nodiscard]] auto path() const noexcept -> const std::filesystem::path { diff --git a/vendor/core/src/core/json/include/sourcemeta/core/json_hash.h b/vendor/core/src/core/json/include/sourcemeta/core/json_hash.h index eec50c70..87d79fd3 100644 --- a/vendor/core/src/core/json/include/sourcemeta/core/json_hash.h +++ b/vendor/core/src/core/json/include/sourcemeta/core/json_hash.h @@ -8,7 +8,7 @@ namespace sourcemeta::core { /// @ingroup json -template struct FastHash { +template struct HashJSON { using hash_type = std::uint64_t; inline auto operator()(const T &value) const noexcept -> hash_type { return value.fast_hash(); @@ -20,7 +20,7 @@ template struct FastHash { }; /// @ingroup json -template struct KeyHash { +template struct PropertyHashJSON { struct hash_type { // For performance when the platform allows it #if defined(__SIZEOF_INT128__) diff --git a/vendor/core/src/core/json/include/sourcemeta/core/json_object.h b/vendor/core/src/core/json/include/sourcemeta/core/json_object.h index fee9b724..aa85fc9f 100644 --- a/vendor/core/src/core/json/include/sourcemeta/core/json_object.h +++ b/vendor/core/src/core/json/include/sourcemeta/core/json_object.h @@ -287,9 +287,10 @@ template class FlatMap { return true; } + Hash hasher; + private: underlying_type data; - Hash hasher; }; /// @ingroup json @@ -393,11 +394,16 @@ template class JSONObject { inline auto size() const -> std::size_t { return this->data.size(); } /// Access an object entry by its underlying positional index - inline auto at(const size_type index) const noexcept - -> const Container::Entry & { + inline auto at(const size_type index) const noexcept -> const + typename Container::Entry & { return this->data.at(index); } + // Hash an object property + inline auto hash(const Key &property) const -> Container::hash_type { + return this->data.hasher(property); + } + private: friend Value; // Exporting symbols that depends on the standard C++ library is considered diff --git a/vendor/core/src/core/json/include/sourcemeta/core/json_value.h b/vendor/core/src/core/json/include/sourcemeta/core/json_value.h index 7edbd492..d597be6a 100644 --- a/vendor/core/src/core/json/include/sourcemeta/core/json_value.h +++ b/vendor/core/src/core/json/include/sourcemeta/core/json_value.h @@ -12,7 +12,7 @@ #include // std::any_of #include // assert #include // std::int64_t, std::uint8_t -#include // std::less, std::reference_wrapper +#include // std::less, std::reference_wrapper, std::function #include // std::initializer_list #include // std::allocator #include // std::optional @@ -43,10 +43,34 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// The array type used by the JSON document. using Array = JSONArray; /// The object type used by the JSON document. - using Object = JSONObject>; + using Object = JSONObject>; + /// The parsing phase of a JSON document. + enum class ParsePhase { Pre, Post }; + // The enumeration indexes must stay in sync with the internal variant + /// The different types of a JSON instance. + enum class Type : std::uint8_t { + Null = 0, + Boolean = 1, + Integer = 2, + Real = 3, + String = 4, + Array = 5, + Object = 6 + }; + + /// An optional callback that can be passed to parsing functions to obtain + /// metadata during the parsing process. Each subdocument will emit 2 events: + /// a "pre" and a "post". When parsing object and arrays, during the "pre" + /// event, the value corresponds to the property name or index, respectively. + using ParseCallback = std::function; + /// A comparison function between object property keys. + /// See https://en.cppreference.com/w/cpp/named_req/Compare + using KeyComparison = std::function; /* - * Constructors + Constructors */ /// This constructor creates a JSON document from an integer type. For @@ -422,7 +446,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON - /// document=sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// document=sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// assert(document.is_array()); /// ``` [[nodiscard]] auto is_array() const noexcept -> bool; @@ -434,23 +458,11 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON - /// document=sourcemeta::core::parse("{ \"foo\": 1 }"); + /// document=sourcemeta::core::parse_json("{ \"foo\": 1 }"); /// assert(document.is_object()); /// ``` [[nodiscard]] auto is_object() const noexcept -> bool; - // The enumeration indexes must stay in sync with the internal variant - /// The different types of a JSON instance. - enum class Type : std::uint8_t { - Null = 0, - Boolean = 1, - Integer = 2, - Real = 3, - String = 4, - Array = 5, - Object = 6 - }; - /// Get the type of the JSON document. For example: /// /// ```cpp @@ -546,7 +558,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON document = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// std::for_each(document.as_array().cbegin(), /// document.as_array().cend(), /// [](const auto &element) { @@ -566,7 +578,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON document = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// std::sort(document.as_array().begin(), document.as_array().end()); /// ``` [[nodiscard]] auto as_array() noexcept -> Array &; @@ -655,11 +667,11 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON my_array = - /// sourcemeta::core::parse("[ 1, 2 ]"); + /// sourcemeta::core::parse_json("[ 1, 2 ]"); /// assert(my_array.at(1).to_integer() == 2); /// /// const sourcemeta::core::JSON my_object = - /// sourcemeta::core::parse("{ \"1\": "foo" }"); + /// sourcemeta::core::parse_json("{ \"1\": "foo" }"); /// assert(my_array.at(1).to_string() == "foo"); /// ``` [[nodiscard]] auto at(const typename Array::size_type index) const @@ -676,11 +688,11 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON my_array = - /// sourcemeta::core::parse("[ 1, 2 ]"); + /// sourcemeta::core::parse_json("[ 1, 2 ]"); /// assert(my_array.at(1).to_integer() == 2); /// /// sourcemeta::core::JSON my_object = - /// sourcemeta::core::parse("{ \"1\": "foo" }"); + /// sourcemeta::core::parse_json("{ \"1\": "foo" }"); /// assert(my_array.at(1).to_string() == "foo"); /// ``` [[nodiscard]] auto at(const typename Array::size_type index) -> JSON &; @@ -694,7 +706,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON my_object = - /// sourcemeta::core::parse("{ \"foo\": 1, \"bar\": 2 }"); + /// sourcemeta::core::parse_json("{ \"foo\": 1, \"bar\": 2 }"); /// assert(my_object.at("bar").to_integer() == 2); /// ``` [[nodiscard]] auto at(const String &key) const -> const JSON &; @@ -709,9 +721,9 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON my_object = - /// sourcemeta::core::parse("{ \"foo\": 1, \"bar\": 2 }"); - /// const sourcemeta::core::Hash hasher; - /// assert(my_object.at("bar", hasher("bar")).to_integer() == 2); + /// sourcemeta::core::parse_json("{ \"foo\": 1, \"bar\": 2 }"); + /// assert(my_object.at("bar", + /// my_object.as_object().hash("bar")).to_integer() == 2); /// ``` [[nodiscard]] auto at(const String &key, const typename Object::Container::hash_type hash) const @@ -726,7 +738,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON my_object = - /// sourcemeta::core::parse("{ \"foo\": 1, \"bar\": 2 }"); + /// sourcemeta::core::parse_json("{ \"foo\": 1, \"bar\": 2 }"); /// assert(my_object.at("bar").to_integer() == 2); /// ``` [[nodiscard]] auto at(const String &key) -> JSON &; @@ -741,9 +753,9 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON my_object = - /// sourcemeta::core::parse("{ \"foo\": 1, \"bar\": 2 }"); - /// const sourcemeta::core::Hash hasher; - /// assert(my_object.at("bar", hasher("bar")).to_integer() == 2); + /// sourcemeta::core::parse_json("{ \"foo\": 1, \"bar\": 2 }"); + /// assert(my_object.at("bar", + /// my_object.as_object().hash("bar")).to_integer() == 2); /// ``` [[nodiscard]] auto at(const String &key, const typename Object::Container::hash_type hash) @@ -758,7 +770,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON document = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// assert(document.front().to_integer() == 1); /// ``` [[nodiscard]] auto front() -> JSON &; @@ -772,7 +784,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON document = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// assert(document.front().to_integer() == 1); /// ``` [[nodiscard]] auto front() const -> const JSON &; @@ -786,7 +798,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON document = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// assert(document.back().to_integer() == 3); /// ``` [[nodiscard]] auto back() -> JSON &; @@ -800,7 +812,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON document = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// assert(document.back().to_integer() == 3); /// ``` [[nodiscard]] auto back() const -> const JSON &; @@ -820,9 +832,9 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON my_object = - /// sourcemeta::core::parse("{ \"foo\": 1 }"); + /// sourcemeta::core::parse_json("{ \"foo\": 1 }"); /// const sourcemeta::core::JSON my_array = - /// sourcemeta::core::parse("[ 1, 2 ]"); + /// sourcemeta::core::parse_json("[ 1, 2 ]"); /// const sourcemeta::core::JSON my_string{"foo"}; /// /// assert(my_object.size() == 1); @@ -853,7 +865,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON my_array = - /// sourcemeta::core::parse("[ 1, 2 ]"); + /// sourcemeta::core::parse_json("[ 1, 2 ]"); /// assert(my_array.array_size() == 2); /// ``` [[nodiscard]] auto array_size() const -> std::size_t; @@ -867,7 +879,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON my_object = - /// sourcemeta::core::parse("{ \"foo\": 1 }"); + /// sourcemeta::core::parse_json("{ \"foo\": 1 }"); /// assert(my_object.object_size() == 1); /// ``` [[nodiscard]] auto object_size() const -> std::size_t; @@ -880,7 +892,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON my_string{ - /// sourcemeta::core::parse("\"\\uD83D\\uDCA9\"")}; + /// sourcemeta::core::parse_json("\"\\uD83D\\uDCA9\"")}; /// assert(my_string.size() == 2); /// ``` [[nodiscard]] auto byte_size() const -> std::size_t; @@ -894,7 +906,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON value = - /// sourcemeta::core::parse("{ \"foo\": 1 }"); + /// sourcemeta::core::parse_json("{ \"foo\": 1 }"); /// /// // Byte length of "foo" (3) + byte length of 1 (8) /// assert(value.estimated_byte_size() == 11); @@ -909,10 +921,10 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON value_1 = - /// sourcemeta::core::parse("{ \"foo\": 1 }"); + /// sourcemeta::core::parse_json("{ \"foo\": 1 }"); /// /// const sourcemeta::core::JSON value_2 = - /// sourcemeta::core::parse("{ \"foo\": 1 }"); + /// sourcemeta::core::parse_json("{ \"foo\": 1 }"); /// /// assert(value_1.fast_hash() == value_2.fast_hash()); /// ``` @@ -942,9 +954,9 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON my_object = - /// sourcemeta::core::parse("{}"); + /// sourcemeta::core::parse_json("{}"); /// const sourcemeta::core::JSON my_array = - /// sourcemeta::core::parse("[]"); + /// sourcemeta::core::parse_json("[]"); /// const sourcemeta::core::JSON my_string{""}; /// /// assert(my_object.empty()); @@ -961,7 +973,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"foo\": 1 }"); + /// sourcemeta::core::parse_json("{ \"foo\": 1 }"); /// EXPECT_TRUE(document.is_object()); /// const auto result = document.try_at("foo"); /// EXPECT_TRUE(result); @@ -977,10 +989,10 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"foo\": 1 }"); + /// sourcemeta::core::parse_json("{ \"foo\": 1 }"); /// EXPECT_TRUE(document.is_object()); - /// const sourcemeta::core::Hash hasher; - /// const auto result = document.try_at("foo", hasher("foo")); + /// const auto result = document.try_at("foo", + /// document.as_object().hash("foo")); /// EXPECT_TRUE(result); /// EXPECT_EQ(result->to_integer(), 1); [[nodiscard]] auto @@ -996,7 +1008,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"foo\": 1 }"); + /// sourcemeta::core::parse_json("{ \"foo\": 1 }"); /// assert(document.defines("foo")); /// assert(!document.defines("bar")); /// ``` @@ -1010,10 +1022,11 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"foo\": 1 }"); - /// const sourcemeta::core::Hash hasher; - /// assert(document.defines("foo", hasher("foo"))); - /// assert(!document.defines("bar", hasher("bar"))); + /// sourcemeta::core::parse_json("{ \"foo\": 1 }"); + /// assert(document.defines("foo", + /// document.as_object().hash("foo"))); + /// assert(document.defines("bar", + /// document.as_object().hash("bar"))); /// ``` [[nodiscard]] auto defines(const String &key, @@ -1027,7 +1040,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"0\": 1 }"); + /// sourcemeta::core::parse_json("{ \"0\": 1 }"); /// assert(document.defines(0)); /// assert(!document.defines(1)); /// ``` @@ -1044,7 +1057,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"foo\": true, \"bar\": false }"); + /// sourcemeta::core::parse_json("{ \"foo\": true, \"bar\": false }"); /// /// const std::vector keys{"foo", "qux"}; /// assert(document.defines_any(keys.cbegin(), keys.cend())); @@ -1064,7 +1077,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"foo\": true, \"bar\": false }"); + /// sourcemeta::core::parse_json("{ \"foo\": true, \"bar\": false }"); /// /// assert(document.defines_any({ "foo", "qux" })); /// ``` @@ -1079,7 +1092,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON document = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// assert(document.contains(sourcemeta::core::JSON{2})); /// assert(!document.contains(sourcemeta::core::JSON{4})); /// ``` @@ -1119,7 +1132,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// const sourcemeta::core::JSON document = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// assert(document.unique()); /// ``` [[nodiscard]] auto unique() const -> bool; @@ -1136,7 +1149,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON document = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// const sourcemeta::core::JSON value{4}; /// document.push_back(value); /// assert(document.size() == 4); @@ -1152,7 +1165,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON document = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// document.push_back(sourcemeta::core::JSON{4}); /// assert(document.size() == 4); /// assert(document.back().to_integer() == 4); @@ -1169,7 +1182,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON document = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// const sourcemeta::core::JSON new_element{3}; /// const auto result{document.push_back_if_unique(new_element)}; /// assert(result.first.get().to_integer() == 3); @@ -1189,7 +1202,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON document = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// sourcemeta::core::JSON new_element{3}; /// const auto result{document.push_back_if_unique(std::move(new_element)}; /// assert(result.first.get().to_integer() == 3); @@ -1206,7 +1219,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"foo\": true }"); + /// sourcemeta::core::parse_json("{ \"foo\": true }"); /// const sourcemeta::core::JSON value{false}; /// document.assign("bar", value); /// assert(document.defines("foo")); @@ -1222,7 +1235,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"foo\": true }"); + /// sourcemeta::core::parse_json("{ \"foo\": true }"); /// document.assign("bar", sourcemeta::core::JSON{false}); /// assert(document.defines("foo")); /// assert(document.defines("bar")); @@ -1236,7 +1249,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"foo\": true }"); + /// sourcemeta::core::parse_json("{ \"foo\": true }"); /// /// const sourcemeta::core::JSON value_1{1}; /// const sourcemeta::core::JSON value_2{2}; @@ -1258,7 +1271,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"foo\": true }"); + /// sourcemeta::core::parse_json("{ \"foo\": true }"); /// /// document.assign_if_missing("foo", sourcemeta::core::JSON{1}); /// document.assign_if_missing("bar", sourcemeta::core::JSON{2}); @@ -1277,7 +1290,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"foo\": true }"); + /// sourcemeta::core::parse_json("{ \"foo\": true }"); /// document.erase("foo"); /// assert(!document.defines("foo")); /// ``` @@ -1340,7 +1353,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON array = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// array.erase(std::next(array.begin())); /// assert(array.size(), 2); /// assert(array.at(0), 1); @@ -1357,7 +1370,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON array = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// array.erase(std::next(array.begin()), array.end()); /// assert(array.size(), 1); /// assert(array.at(0), 1); @@ -1373,9 +1386,9 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON my_object = - /// sourcemeta::core::parse("{ \"foo\": true }"); + /// sourcemeta::core::parse_json("{ \"foo\": true }"); /// sourcemeta::core::JSON my_array = - /// sourcemeta::core::parse("[ 1, 2, 3 ]"); + /// sourcemeta::core::parse_json("[ 1, 2, 3 ]"); /// my_object.clear(); /// my_array.clear(); /// assert(my_object.empty()); @@ -1457,7 +1470,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"foo\": true }"); + /// sourcemeta::core::parse_json("{ \"foo\": true }"); /// const sourcemeta::core::JSON value{2}; /// document.at("foo").into(value); /// assert(document.at("foo").is_integer()); @@ -1473,7 +1486,7 @@ class SOURCEMETA_CORE_JSON_EXPORT JSON { /// #include /// /// sourcemeta::core::JSON document = - /// sourcemeta::core::parse("{ \"foo\": true }"); + /// sourcemeta::core::parse_json("{ \"foo\": true }"); /// document.at("foo").into(sourcemeta::core::JSON{2}); /// assert(document.at("foo").is_integer()); /// ``` diff --git a/vendor/core/src/core/json/json.cc b/vendor/core/src/core/json/json.cc index c97fc5f3..ed50f604 100644 --- a/vendor/core/src/core/json/json.cc +++ b/vendor/core/src/core/json/json.cc @@ -9,30 +9,30 @@ namespace sourcemeta::core { -auto parse(std::basic_istream &stream, - std::uint64_t &line, std::uint64_t &column, const Callback &callback) - -> JSON { - return internal_parse(stream, line, column, callback); +auto parse_json(std::basic_istream &stream, + std::uint64_t &line, std::uint64_t &column, + const JSON::ParseCallback &callback) -> JSON { + return internal_parse_json(stream, line, column, callback); } -auto parse(const std::basic_string &input, - std::uint64_t &line, std::uint64_t &column, const Callback &callback) - -> JSON { - return internal_parse(input, line, column, callback); +auto parse_json(const std::basic_string &input, + std::uint64_t &line, std::uint64_t &column, + const JSON::ParseCallback &callback) -> JSON { + return internal_parse_json(input, line, column, callback); } -auto parse(std::basic_istream &stream, - const Callback &callback) -> JSON { +auto parse_json(std::basic_istream &stream, + const JSON::ParseCallback &callback) -> JSON { std::uint64_t line{1}; std::uint64_t column{0}; - return parse(stream, line, column, callback); + return parse_json(stream, line, column, callback); } -auto parse(const std::basic_string &input, - const Callback &callback) -> JSON { +auto parse_json(const std::basic_string &input, + const JSON::ParseCallback &callback) -> JSON { std::uint64_t line{1}; std::uint64_t column{0}; - return parse(input, line, column, callback); + return parse_json(input, line, column, callback); } auto read_file(const std::filesystem::path &path) @@ -50,13 +50,13 @@ auto read_file(const std::filesystem::path &path) return stream; } -auto from_file(const std::filesystem::path &path) -> JSON { +auto read_json(const std::filesystem::path &path) -> JSON { auto stream{read_file(path)}; try { - return parse(stream); - } catch (const ParseError &error) { + return parse_json(stream); + } catch (const JSONParseError &error) { // For producing better error messages - throw FileParseError(path, error); + throw JSONFileParseError(path, error); } } @@ -74,13 +74,13 @@ auto prettify(const JSON &document, auto stringify(const JSON &document, std::basic_ostream &stream, - const KeyComparison &compare) -> void { + const JSON::KeyComparison &compare) -> void { stringify(document, stream, compare); } auto prettify(const JSON &document, std::basic_ostream &stream, - const KeyComparison &compare) -> void { + const JSON::KeyComparison &compare) -> void { prettify(document, stream, compare); } diff --git a/vendor/core/src/core/json/parser.h b/vendor/core/src/core/json/parser.h index 3b14acb0..c656c5c8 100644 --- a/vendor/core/src/core/json/parser.h +++ b/vendor/core/src/core/json/parser.h @@ -28,7 +28,7 @@ inline auto parse_null( 1)) { column += 1; if (stream.get() != character) { - throw ParseError(line, column); + throw JSONParseError(line, column); } } @@ -45,7 +45,7 @@ inline auto parse_boolean_true( 1)) { column += 1; if (stream.get() != character) { - throw ParseError(line, column); + throw JSONParseError(line, column); } } @@ -62,7 +62,7 @@ inline auto parse_boolean_false( 1)) { column += 1; if (stream.get() != character) { - throw ParseError(line, column); + throw JSONParseError(line, column); } } @@ -97,7 +97,7 @@ auto parse_string_unicode_code_point( if (std::isxdigit(code_point[code_point_size])) { code_point_size += 1; } else { - throw ParseError(line, column); + throw JSONParseError(line, column); } } @@ -127,13 +127,13 @@ auto parse_string_unicode( // Next, we expect "\" column += 1; if (stream.get() != internal::token_string_escape) { - throw ParseError(line, column); + throw JSONParseError(line, column); } // Next, we expect "u" column += 1; if (stream.get() != internal::token_string_escape_unicode) { - throw ParseError(line, column); + throw JSONParseError(line, column); } // Finally, get the low code point of the surrogate and calculate @@ -147,7 +147,7 @@ auto parse_string_unicode( code_point = 0x10000 + ((code_point - 0xD800) << 10) + (low_code_point - 0xDC00); } else { - throw ParseError(line, column); + throw JSONParseError(line, column); } } @@ -218,7 +218,7 @@ auto parse_string_escape( return; default: - throw ParseError(line, column); + throw JSONParseError(line, column); } } @@ -276,14 +276,14 @@ auto parse_string( case '\u001E': case '\u001F': case static_cast(JSON::CharTraits::eof()): - throw ParseError(line, column); + throw JSONParseError(line, column); default: result.put(character); break; } } - throw ParseError(line, column); + throw JSONParseError(line, column); } template @@ -293,7 +293,7 @@ auto parse_number_integer(const std::uint64_t line, const std::uint64_t column, try { return std::stoll(string); } catch (const std::out_of_range &) { - throw ParseError(line, column); + throw JSONParseError(line, column); } } @@ -304,7 +304,7 @@ auto parse_number_real(const std::uint64_t line, const std::uint64_t column, try { return std::stod(string); } catch (const std::out_of_range &) { - throw ParseError(line, column); + throw JSONParseError(line, column); } } @@ -338,7 +338,7 @@ auto parse_number_exponent_rest( } } - throw ParseError(line, column); + throw JSONParseError(line, column); } auto parse_number_exponent( @@ -366,7 +366,7 @@ auto parse_number_exponent( return parse_number_exponent_rest(line, column, original_column, stream, result); default: - throw ParseError(line, column); + throw JSONParseError(line, column); } } @@ -405,7 +405,7 @@ auto parse_number_exponent_first( return parse_number_exponent_rest(line, column, original_column, stream, result); default: - throw ParseError(line, column); + throw JSONParseError(line, column); } } @@ -450,7 +450,7 @@ auto parse_number_fractional( } } - throw ParseError(line, column); + throw JSONParseError(line, column); } auto parse_number_fractional_first( @@ -469,7 +469,7 @@ auto parse_number_fractional_first( case internal::token_number_decimal_point: case static_cast(JSON::CharTraits::eof()): column += 1; - throw ParseError(line, column); + throw JSONParseError(line, column); case internal::token_number_zero: case internal::token_number_one: case internal::token_number_two: @@ -526,7 +526,7 @@ auto parse_number_maybe_fractional( case internal::token_number_eight: case internal::token_number_nine: column += 1; - throw ParseError(line, column); + throw JSONParseError(line, column); default: return JSON{parse_number_integer(line, original_column, result.str())}; } @@ -578,7 +578,7 @@ auto parse_number_any_rest( } } - throw ParseError(line, column); + throw JSONParseError(line, column); } auto parse_number_any_negative_first( @@ -612,7 +612,7 @@ auto parse_number_any_negative_first( return parse_number_any_rest(line, column, original_column, stream, result); default: - throw ParseError(line, column); + throw JSONParseError(line, column); } } @@ -649,27 +649,29 @@ auto parse_number( #define CALLBACK_PRE(value_type, value) \ if (callback) { \ assert(value.is_null() || value.is_string() || value.is_integer()); \ - callback(CallbackPhase::Pre, JSON::Type::value_type, line, column, value); \ + callback(JSON::ParsePhase::Pre, JSON::Type::value_type, line, column, \ + value); \ } #define CALLBACK_PRE_WITH_POSITION(value_type, line, column, value) \ if (callback) { \ assert(value.is_null() || value.is_string() || value.is_integer()); \ - callback(CallbackPhase::Pre, JSON::Type::value_type, line, column, value); \ + callback(JSON::ParsePhase::Pre, JSON::Type::value_type, line, column, \ + value); \ } #define CALLBACK_POST(value_type, value) \ if (callback) { \ assert(value.type() == JSON::Type::value_type); \ - callback(CallbackPhase::Post, JSON::Type::value_type, line, column, \ + callback(JSON::ParsePhase::Post, JSON::Type::value_type, line, column, \ value); \ } namespace sourcemeta::core { -auto internal_parse( +auto internal_parse_json( std::basic_istream &stream, - std::uint64_t &line, std::uint64_t &column, const Callback &callback) - -> JSON { + std::uint64_t &line, std::uint64_t &column, + const JSON::ParseCallback &callback) -> JSON { // Globals using Result = JSON; enum class Container : std::uint8_t { Array, Object }; @@ -781,7 +783,7 @@ auto internal_parse( case internal::token_whitespace_space: goto do_parse; default: - throw ParseError(line, column); + throw JSONParseError(line, column); } /* @@ -826,7 +828,7 @@ auto internal_parse( CALLBACK_POST(Array, frames.top().get()); goto do_parse_container_end; } else { - throw ParseError(line, column); + throw JSONParseError(line, column); } // Values @@ -1170,7 +1172,7 @@ auto internal_parse( frames.pop(); } - throw ParseError(line, column); + throw JSONParseError(line, column); do_parse_container_end: assert(!levels.empty()); @@ -1189,14 +1191,15 @@ auto internal_parse( // NOLINTEND(cppcoreguidelines-avoid-goto) -auto internal_parse(const std::basic_string &input, - std::uint64_t &line, std::uint64_t &column, - const Callback &callback) -> JSON { +auto internal_parse_json( + const std::basic_string + &input, + std::uint64_t &line, std::uint64_t &column, + const JSON::ParseCallback &callback) -> JSON { std::basic_istringstream> stream{input}; - return internal_parse(stream, line, column, callback); + return internal_parse_json(stream, line, column, callback); } } // namespace sourcemeta::core diff --git a/vendor/core/src/core/json/stringify.h b/vendor/core/src/core/json/stringify.h index d8ae3d87..fa60df74 100644 --- a/vendor/core/src/core/json/stringify.h +++ b/vendor/core/src/core/json/stringify.h @@ -89,7 +89,7 @@ template