From bb626d14d13d8ccdfe15bd04c517d2561fcea7db Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Tue, 21 Jan 2025 11:34:17 -0400 Subject: [PATCH] Upgrade Noa and JSON Toolkit Signed-off-by: Juan Cruz Viotti --- .github/workflows/ci.yml | 8 +- CMakeLists.txt | 4 +- DEPENDENCIES | 5 +- Makefile | 4 + cmake/FindGoogleTest.cmake | 5 - cmake/FindNoa.cmake | 12 + test/e2e/bucket/CMakeLists.txt | 17 +- test/e2e/httpclient/CMakeLists.txt | 16 +- test/e2e/httpserver/CMakeLists.txt | 16 +- test/unit/bucket/CMakeLists.txt | 12 +- test/unit/crypto/CMakeLists.txt | 14 +- test/unit/http/CMakeLists.txt | 12 +- test/unit/httpserver/CMakeLists.txt | 11 +- vendor/googletest.mask | 16 - vendor/jsontoolkit/CMakeLists.txt | 16 +- vendor/jsontoolkit/cmake/FindNoa.cmake | 12 + vendor/jsontoolkit/config.cmake.in | 6 +- vendor/jsontoolkit/src/json/CMakeLists.txt | 5 +- .../sourcemeta/jsontoolkit/json_hash.h | 34 +- .../sourcemeta/jsontoolkit/json_object.h | 4 +- .../sourcemeta/jsontoolkit/json_value.h | 2 +- .../sourcemeta/jsontoolkit/jsonpointer.h | 5 +- .../jsontoolkit/jsonpointer_pointer.h | 42 +- .../jsontoolkit/jsonpointer_position.h | 2 +- .../jsontoolkit/jsonpointer_token.h | 6 +- .../src/jsonpointer/jsonpointer.cc | 10 +- .../src/jsonschema/default_walker.cc | 434 ++- .../jsontoolkit/jsonschema_keywords.h | 3 + .../jsontoolkit/jsonschema_resolver.h | 8 +- .../jsontoolkit/src/jsonschema/relativize.cc | 6 + vendor/jsontoolkit/src/jsonschema/resolver.cc | 11 +- vendor/jsontoolkit/src/jsonschema/walker.cc | 2 + vendor/jsontoolkit/src/regex/CMakeLists.txt | 12 - .../include/sourcemeta/jsontoolkit/regex.h | 111 - vendor/jsontoolkit/src/regex/regex.cc | 98 - vendor/jsontoolkit/vendor/boost-regex.mask | 12 - vendor/jsontoolkit/vendor/noa/CMakeLists.txt | 105 + vendor/jsontoolkit/vendor/noa/LICENSE | 673 +--- .../noa}/cmake/FindBoostRegex.cmake | 28 +- .../noa}/cmake/FindGoogleBenchmark.cmake | 0 .../vendor/noa/cmake/FindGoogleTest.cmake | 6 + .../noa/cmake/noa/compiler/options.cmake | 2 +- .../vendor/noa/cmake/noa/defaults.cmake | 48 +- .../vendor/noa/cmake/{ => noa}/noa.cmake | 7 +- .../vendor/noa/cmake/noa/shim.cmake | 2 +- .../noa/cmake/noa/targets/clang-format.cmake | 4 +- .../noa/cmake/noa/targets/clang-tidy.cmake | 4 +- .../noa/cmake/noa/targets/executable.cmake | 35 + .../cmake/noa/targets/googlebenchmark.cmake | 26 + .../noa/cmake/noa/targets/googletest.cmake | 24 + .../noa/cmake/noa/{ => targets}/library.cmake | 13 +- .../noa/cmake/noa/targets/shellcheck.cmake | 2 - .../vendor/noa/cmake/noa/variables.cmake | 6 +- vendor/jsontoolkit/vendor/noa/config.cmake.in | 27 + .../vendor/noa/src/flat_map/CMakeLists.txt | 7 + .../include/sourcemeta/noa/flat_map.h} | 29 +- .../vendor/noa/src/hash/CMakeLists.txt | 7 + .../src/hash/include/sourcemeta/noa/hash.h | 25 + .../vendor/noa/src/regex/CMakeLists.txt | 10 + .../src/regex/include/sourcemeta/noa/regex.h | 191 + .../boost-regex/include/boost/cregex.hpp | 0 .../vendor}/boost-regex/include/boost/regex.h | 0 .../boost-regex/include/boost/regex.hpp | 0 .../include/boost/regex/concepts.hpp | 0 .../include/boost/regex/config.hpp | 0 .../include/boost/regex/config/borland.hpp | 0 .../include/boost/regex/config/cwchar.hpp | 0 .../boost-regex/include/boost/regex/icu.hpp | 0 .../boost-regex/include/boost/regex/mfc.hpp | 0 .../include/boost/regex/pattern_except.hpp | 0 .../boost/regex/pending/object_cache.hpp | 0 .../boost/regex/pending/static_mutex.hpp | 0 .../boost/regex/pending/unicode_iterator.hpp | 0 .../include/boost/regex/regex_traits.hpp | 0 .../boost-regex/include/boost/regex/user.hpp | 0 .../include/boost/regex/v4/basic_regex.hpp | 0 .../boost/regex/v4/basic_regex_creator.hpp | 0 .../boost/regex/v4/basic_regex_parser.hpp | 0 .../include/boost/regex/v4/c_regex_traits.hpp | 0 .../boost/regex/v4/char_regex_traits.hpp | 0 .../boost/regex/v4/cpp_regex_traits.hpp | 0 .../include/boost/regex/v4/cregex.hpp | 0 .../include/boost/regex/v4/error_type.hpp | 0 .../include/boost/regex/v4/icu.hpp | 0 .../boost/regex/v4/indexed_bit_flag.hpp | 0 .../boost/regex/v4/iterator_category.hpp | 0 .../boost/regex/v4/iterator_traits.hpp | 0 .../include/boost/regex/v4/match_flags.hpp | 0 .../include/boost/regex/v4/match_results.hpp | 0 .../boost/regex/v4/mem_block_cache.hpp | 0 .../include/boost/regex/v4/object_cache.hpp | 0 .../include/boost/regex/v4/pattern_except.hpp | 0 .../include/boost/regex/v4/perl_matcher.hpp | 0 .../boost/regex/v4/perl_matcher_common.hpp | 0 .../regex/v4/perl_matcher_non_recursive.hpp | 0 .../boost/regex/v4/perl_matcher_recursive.hpp | 0 .../boost/regex/v4/primary_transform.hpp | 0 .../include/boost/regex/v4/protected_call.hpp | 0 .../include/boost/regex/v4/regbase.hpp | 0 .../include/boost/regex/v4/regex.hpp | 0 .../include/boost/regex/v4/regex_format.hpp | 0 .../include/boost/regex/v4/regex_fwd.hpp | 0 .../include/boost/regex/v4/regex_grep.hpp | 0 .../include/boost/regex/v4/regex_iterator.hpp | 0 .../include/boost/regex/v4/regex_match.hpp | 0 .../include/boost/regex/v4/regex_merge.hpp | 0 .../boost/regex/v4/regex_raw_buffer.hpp | 0 .../include/boost/regex/v4/regex_replace.hpp | 0 .../include/boost/regex/v4/regex_search.hpp | 0 .../include/boost/regex/v4/regex_split.hpp | 0 .../boost/regex/v4/regex_token_iterator.hpp | 0 .../include/boost/regex/v4/regex_traits.hpp | 0 .../boost/regex/v4/regex_traits_defaults.hpp | 0 .../boost/regex/v4/regex_workaround.hpp | 0 .../include/boost/regex/v4/states.hpp | 0 .../include/boost/regex/v4/sub_match.hpp | 0 .../include/boost/regex/v4/syntax_type.hpp | 0 .../boost/regex/v4/u32regex_iterator.hpp | 0 .../regex/v4/u32regex_token_iterator.hpp | 0 .../boost/regex/v4/unicode_iterator.hpp | 0 .../boost/regex/v4/w32_regex_traits.hpp | 0 .../include/boost/regex/v5/basic_regex.hpp | 0 .../boost/regex/v5/basic_regex_creator.hpp | 0 .../boost/regex/v5/basic_regex_parser.hpp | 0 .../include/boost/regex/v5/c_regex_traits.hpp | 0 .../boost/regex/v5/char_regex_traits.hpp | 0 .../boost/regex/v5/cpp_regex_traits.hpp | 0 .../include/boost/regex/v5/cregex.hpp | 0 .../include/boost/regex/v5/error_type.hpp | 0 .../include/boost/regex/v5/icu.hpp | 0 .../boost/regex/v5/iterator_category.hpp | 0 .../boost/regex/v5/iterator_traits.hpp | 0 .../include/boost/regex/v5/match_flags.hpp | 0 .../include/boost/regex/v5/match_results.hpp | 0 .../boost/regex/v5/mem_block_cache.hpp | 0 .../include/boost/regex/v5/object_cache.hpp | 0 .../include/boost/regex/v5/pattern_except.hpp | 0 .../include/boost/regex/v5/perl_matcher.hpp | 0 .../boost/regex/v5/perl_matcher_common.hpp | 0 .../regex/v5/perl_matcher_non_recursive.hpp | 0 .../boost/regex/v5/primary_transform.hpp | 0 .../include/boost/regex/v5/regbase.hpp | 0 .../include/boost/regex/v5/regex.hpp | 0 .../include/boost/regex/v5/regex_format.hpp | 0 .../include/boost/regex/v5/regex_fwd.hpp | 0 .../include/boost/regex/v5/regex_grep.hpp | 0 .../include/boost/regex/v5/regex_iterator.hpp | 0 .../include/boost/regex/v5/regex_match.hpp | 0 .../include/boost/regex/v5/regex_merge.hpp | 0 .../boost/regex/v5/regex_raw_buffer.hpp | 0 .../include/boost/regex/v5/regex_replace.hpp | 0 .../include/boost/regex/v5/regex_search.hpp | 0 .../include/boost/regex/v5/regex_split.hpp | 0 .../boost/regex/v5/regex_token_iterator.hpp | 0 .../include/boost/regex/v5/regex_traits.hpp | 0 .../boost/regex/v5/regex_traits_defaults.hpp | 0 .../boost/regex/v5/regex_workaround.hpp | 0 .../include/boost/regex/v5/states.hpp | 0 .../include/boost/regex/v5/sub_match.hpp | 0 .../include/boost/regex/v5/syntax_type.hpp | 0 .../boost/regex/v5/u32regex_iterator.hpp | 0 .../regex/v5/u32regex_token_iterator.hpp | 0 .../boost/regex/v5/unicode_iterator.hpp | 0 .../boost/regex/v5/w32_regex_traits.hpp | 0 .../boost-regex/include/boost/regex_fwd.hpp | 0 .../vendor/noa/vendor/vendorpull/LICENSE | 661 ++++ .../vendor/noa/vendor/vendorpull/pull | 123 + vendor/noa/CMakeLists.txt | 105 + vendor/noa/LICENSE | 673 +--- vendor/noa/cmake/FindBoostRegex.cmake | 184 + vendor/noa/cmake/FindGoogleBenchmark.cmake | 5 + vendor/noa/cmake/FindGoogleTest.cmake | 6 + vendor/noa/cmake/noa/compiler/options.cmake | 2 +- vendor/noa/cmake/noa/defaults.cmake | 69 +- vendor/noa/cmake/{ => noa}/noa.cmake | 7 +- vendor/noa/cmake/noa/shim.cmake | 2 +- .../noa/cmake/noa/targets/clang-format.cmake | 4 +- vendor/noa/cmake/noa/targets/clang-tidy.cmake | 4 +- vendor/noa/cmake/noa/targets/executable.cmake | 35 + .../cmake/noa/targets/googlebenchmark.cmake | 26 + vendor/noa/cmake/noa/targets/googletest.cmake | 24 + .../noa/cmake/noa/{ => targets}/library.cmake | 19 +- vendor/noa/cmake/noa/targets/shellcheck.cmake | 2 - vendor/noa/cmake/noa/variables.cmake | 6 +- vendor/noa/config.cmake.in | 27 + vendor/noa/src/flat_map/CMakeLists.txt | 7 + .../include/sourcemeta/noa/flat_map.h | 270 ++ vendor/noa/src/hash/CMakeLists.txt | 7 + .../src/hash/include/sourcemeta/noa/hash.h | 25 + vendor/noa/src/regex/CMakeLists.txt | 10 + .../src/regex/include/sourcemeta/noa/regex.h | 191 + .../boost-regex/include/boost/cregex.hpp | 43 + .../vendor/boost-regex/include/boost/regex.h | 100 + .../boost-regex/include/boost/regex.hpp | 41 + .../include/boost/regex/concepts.hpp | 1134 ++++++ .../include/boost/regex/config.hpp | 480 +++ .../include/boost/regex/config/borland.hpp | 72 + .../include/boost/regex/config/cwchar.hpp | 207 ++ .../boost-regex/include/boost/regex/icu.hpp | 30 + .../boost-regex/include/boost/regex/mfc.hpp | 186 + .../include/boost/regex/pattern_except.hpp | 32 + .../boost/regex/pending/object_cache.hpp | 29 + .../boost/regex/pending/static_mutex.hpp | 182 + .../boost/regex/pending/unicode_iterator.hpp | 32 + .../include/boost/regex/regex_traits.hpp | 39 + .../boost-regex/include/boost/regex/user.hpp | 95 + .../include/boost/regex/v4/basic_regex.hpp | 797 +++++ .../boost/regex/v4/basic_regex_creator.hpp | 1598 +++++++++ .../boost/regex/v4/basic_regex_parser.hpp | 3174 +++++++++++++++++ .../include/boost/regex/v4/c_regex_traits.hpp | 511 +++ .../boost/regex/v4/char_regex_traits.hpp | 81 + .../boost/regex/v4/cpp_regex_traits.hpp | 1237 +++++++ .../include/boost/regex/v4/cregex.hpp | 213 ++ .../include/boost/regex/v4/error_type.hpp | 59 + .../include/boost/regex/v4/icu.hpp | 1516 ++++++++ .../boost/regex/v4/indexed_bit_flag.hpp | 54 + .../boost/regex/v4/iterator_category.hpp | 91 + .../boost/regex/v4/iterator_traits.hpp | 135 + .../include/boost/regex/v4/match_flags.hpp | 161 + .../include/boost/regex/v4/match_results.hpp | 716 ++++ .../boost/regex/v4/mem_block_cache.hpp | 183 + .../include/boost/regex/v4/object_cache.hpp | 171 + .../include/boost/regex/v4/pattern_except.hpp | 128 + .../include/boost/regex/v4/perl_matcher.hpp | 645 ++++ .../boost/regex/v4/perl_matcher_common.hpp | 1030 ++++++ .../regex/v4/perl_matcher_non_recursive.hpp | 1947 ++++++++++ .../boost/regex/v4/perl_matcher_recursive.hpp | 1131 ++++++ .../boost/regex/v4/primary_transform.hpp | 146 + .../include/boost/regex/v4/protected_call.hpp | 83 + .../include/boost/regex/v4/regbase.hpp | 180 + .../include/boost/regex/v4/regex.hpp | 166 + .../include/boost/regex/v4/regex_format.hpp | 1158 ++++++ .../include/boost/regex/v4/regex_fwd.hpp | 73 + .../include/boost/regex/v4/regex_grep.hpp | 155 + .../include/boost/regex/v4/regex_iterator.hpp | 195 + .../include/boost/regex/v4/regex_match.hpp | 382 ++ .../include/boost/regex/v4/regex_merge.hpp | 93 + .../boost/regex/v4/regex_raw_buffer.hpp | 241 ++ .../include/boost/regex/v4/regex_replace.hpp | 99 + .../include/boost/regex/v4/regex_search.hpp | 217 ++ .../include/boost/regex/v4/regex_split.hpp | 174 + .../boost/regex/v4/regex_token_iterator.hpp | 327 ++ .../include/boost/regex/v4/regex_traits.hpp | 189 + .../boost/regex/v4/regex_traits_defaults.hpp | 997 ++++++ .../boost/regex/v4/regex_workaround.hpp | 237 ++ .../include/boost/regex/v4/states.hpp | 321 ++ .../include/boost/regex/v4/sub_match.hpp | 516 +++ .../include/boost/regex/v4/syntax_type.hpp | 105 + .../boost/regex/v4/u32regex_iterator.hpp | 185 + .../regex/v4/u32regex_token_iterator.hpp | 360 ++ .../boost/regex/v4/unicode_iterator.hpp | 871 +++++ .../boost/regex/v4/w32_regex_traits.hpp | 1229 +++++++ .../include/boost/regex/v5/basic_regex.hpp | 734 ++++ .../boost/regex/v5/basic_regex_creator.hpp | 1576 ++++++++ .../boost/regex/v5/basic_regex_parser.hpp | 3130 ++++++++++++++++ .../include/boost/regex/v5/c_regex_traits.hpp | 474 +++ .../boost/regex/v5/char_regex_traits.hpp | 59 + .../boost/regex/v5/cpp_regex_traits.hpp | 1040 ++++++ .../include/boost/regex/v5/cregex.hpp | 195 + .../include/boost/regex/v5/error_type.hpp | 59 + .../include/boost/regex/v5/icu.hpp | 1402 ++++++++ .../boost/regex/v5/iterator_category.hpp | 84 + .../boost/regex/v5/iterator_traits.hpp | 32 + .../include/boost/regex/v5/match_flags.hpp | 156 + .../include/boost/regex/v5/match_results.hpp | 667 ++++ .../boost/regex/v5/mem_block_cache.hpp | 173 + .../include/boost/regex/v5/object_cache.hpp | 160 + .../include/boost/regex/v5/pattern_except.hpp | 106 + .../include/boost/regex/v5/perl_matcher.hpp | 576 +++ .../boost/regex/v5/perl_matcher_common.hpp | 921 +++++ .../regex/v5/perl_matcher_non_recursive.hpp | 1874 ++++++++++ .../boost/regex/v5/primary_transform.hpp | 120 + .../include/boost/regex/v5/regbase.hpp | 158 + .../include/boost/regex/v5/regex.hpp | 106 + .../include/boost/regex/v5/regex_format.hpp | 1124 ++++++ .../include/boost/regex/v5/regex_fwd.hpp | 73 + .../include/boost/regex/v5/regex_grep.hpp | 98 + .../include/boost/regex/v5/regex_iterator.hpp | 173 + .../include/boost/regex/v5/regex_match.hpp | 92 + .../include/boost/regex/v5/regex_merge.hpp | 71 + .../boost/regex/v5/regex_raw_buffer.hpp | 213 ++ .../include/boost/regex/v5/regex_replace.hpp | 77 + .../include/boost/regex/v5/regex_search.hpp | 103 + .../include/boost/regex/v5/regex_split.hpp | 152 + .../boost/regex/v5/regex_token_iterator.hpp | 255 ++ .../include/boost/regex/v5/regex_traits.hpp | 130 + .../boost/regex/v5/regex_traits_defaults.hpp | 996 ++++++ .../boost/regex/v5/regex_workaround.hpp | 159 + .../include/boost/regex/v5/states.hpp | 299 ++ .../include/boost/regex/v5/sub_match.hpp | 382 ++ .../include/boost/regex/v5/syntax_type.hpp | 105 + .../boost/regex/v5/u32regex_iterator.hpp | 177 + .../regex/v5/u32regex_token_iterator.hpp | 312 ++ .../boost/regex/v5/unicode_iterator.hpp | 862 +++++ .../boost/regex/v5/w32_regex_traits.hpp | 1311 +++++++ .../boost-regex/include/boost/regex_fwd.hpp | 37 + .../noa/vendor/googlebenchmark/CMakeLists.txt | 351 ++ vendor/noa/vendor/googlebenchmark/LICENSE | 202 ++ .../cmake/AddCXXCompilerFlag.cmake | 78 + .../cmake/CXXFeatureCheck.cmake | 82 + .../googlebenchmark/cmake/Config.cmake.in | 11 + .../googlebenchmark/cmake/GetGitVersion.cmake | 36 + .../googlebenchmark/cmake/GoogleTest.cmake | 58 + .../googlebenchmark/cmake/GoogleTest.cmake.in | 59 + .../cmake/Modules/FindLLVMAr.cmake | 16 + .../cmake/Modules/FindLLVMNm.cmake | 16 + .../cmake/Modules/FindLLVMRanLib.cmake | 15 + .../cmake/Modules/FindPFM.cmake | 28 + .../googlebenchmark/cmake/benchmark.pc.in | 12 + .../cmake/benchmark_main.pc.in | 7 + .../googlebenchmark/cmake/gnu_posix_regex.cpp | 12 + .../cmake/llvm-toolchain.cmake | 8 + .../googlebenchmark/cmake/posix_regex.cpp | 14 + .../cmake/pthread_affinity.cpp | 16 + .../googlebenchmark/cmake/split_list.cmake | 3 + .../googlebenchmark/cmake/std_regex.cpp | 10 + .../googlebenchmark/cmake/steady_clock.cpp | 7 + .../cmake/thread_safety_attributes.cpp | 4 + .../include/benchmark/benchmark.h | 2060 +++++++++++ .../include/benchmark/export.h | 47 + .../vendor/googlebenchmark/src/CMakeLists.txt | 180 + .../vendor/googlebenchmark/src/arraysize.h | 33 + .../vendor/googlebenchmark/src/benchmark.cc | 812 +++++ .../src/benchmark_api_internal.cc | 118 + .../src/benchmark_api_internal.h | 87 + .../googlebenchmark/src/benchmark_main.cc | 18 + .../googlebenchmark/src/benchmark_name.cc | 59 + .../googlebenchmark/src/benchmark_register.cc | 521 +++ .../googlebenchmark/src/benchmark_register.h | 109 + .../googlebenchmark/src/benchmark_runner.cc | 525 +++ .../googlebenchmark/src/benchmark_runner.h | 136 + .../noa/vendor/googlebenchmark/src/check.cc | 11 + vendor/noa/vendor/googlebenchmark/src/check.h | 106 + .../vendor/googlebenchmark/src/colorprint.cc | 200 ++ .../vendor/googlebenchmark/src/colorprint.h | 33 + .../googlebenchmark/src/commandlineflags.cc | 298 ++ .../googlebenchmark/src/commandlineflags.h | 133 + .../vendor/googlebenchmark/src/complexity.cc | 255 ++ .../vendor/googlebenchmark/src/complexity.h | 55 + .../googlebenchmark/src/console_reporter.cc | 210 ++ .../noa/vendor/googlebenchmark/src/counter.cc | 80 + .../noa/vendor/googlebenchmark/src/counter.h | 32 + .../googlebenchmark/src/csv_reporter.cc | 169 + .../vendor/googlebenchmark/src/cycleclock.h | 243 ++ .../googlebenchmark/src/internal_macros.h | 111 + .../googlebenchmark/src/json_reporter.cc | 327 ++ vendor/noa/vendor/googlebenchmark/src/log.h | 88 + vendor/noa/vendor/googlebenchmark/src/mutex.h | 155 + .../googlebenchmark/src/perf_counters.cc | 284 ++ .../googlebenchmark/src/perf_counters.h | 200 ++ vendor/noa/vendor/googlebenchmark/src/re.h | 158 + .../vendor/googlebenchmark/src/reporter.cc | 118 + .../vendor/googlebenchmark/src/statistics.cc | 214 ++ .../vendor/googlebenchmark/src/statistics.h | 44 + .../vendor/googlebenchmark/src/string_util.cc | 254 ++ .../vendor/googlebenchmark/src/string_util.h | 70 + .../noa/vendor/googlebenchmark/src/sysinfo.cc | 871 +++++ .../googlebenchmark/src/thread_manager.h | 63 + .../vendor/googlebenchmark/src/thread_timer.h | 86 + .../noa/vendor/googlebenchmark/src/timers.cc | 284 ++ .../noa/vendor/googlebenchmark/src/timers.h | 75 + .../vendor}/googletest/CMakeLists.txt | 11 +- vendor/{ => noa/vendor}/googletest/LICENSE | 0 .../googletest/googlemock/CMakeLists.txt | 27 +- .../googletest/googlemock/cmake/gmock.pc.in | 0 .../googlemock/cmake/gmock_main.pc.in | 0 .../googlemock/include/gmock/gmock-actions.h | 36 +- .../include/gmock/gmock-cardinalities.h | 0 .../include/gmock/gmock-function-mocker.h | 9 +- .../googlemock/include/gmock/gmock-matchers.h | 179 +- .../include/gmock/gmock-more-actions.h | 7 +- .../include/gmock/gmock-more-matchers.h | 0 .../include/gmock/gmock-nice-strict.h | 0 .../include/gmock/gmock-spec-builders.h | 0 .../googlemock/include/gmock/gmock.h | 15 +- .../include/gmock/internal/custom/README.md | 0 .../internal/custom/gmock-generated-actions.h | 0 .../gmock/internal/custom/gmock-matchers.h | 0 .../gmock/internal/custom/gmock-port.h | 0 .../gmock/internal/gmock-internal-utils.h | 14 +- .../include/gmock/internal/gmock-port.h | 8 +- .../include/gmock/internal/gmock-pp.h | 0 .../googletest/googlemock/src/gmock-all.cc | 0 .../googlemock/src/gmock-cardinalities.cc | 0 .../googlemock/src/gmock-internal-utils.cc | 5 +- .../googlemock/src/gmock-matchers.cc | 29 +- .../googlemock/src/gmock-spec-builders.cc | 3 +- .../googletest/googlemock/src/gmock.cc | 0 .../googletest/googlemock/src/gmock_main.cc | 0 .../googletest/googletest/CMakeLists.txt | 28 +- .../googletest/cmake/Config.cmake.in | 4 + .../googletest/googletest/cmake/gtest.pc.in | 0 .../googletest/cmake/gtest_main.pc.in | 0 .../googletest/cmake/internal_utils.cmake | 42 +- .../googletest/cmake/libgtest.la.in | 0 .../include/gtest/gtest-assertion-result.h | 2 +- .../include/gtest/gtest-death-test.h | 8 +- .../googletest/include/gtest/gtest-matchers.h | 0 .../googletest/include/gtest/gtest-message.h | 19 +- .../include/gtest/gtest-param-test.h | 8 +- .../googletest/include/gtest/gtest-printers.h | 90 +- .../googletest/include/gtest/gtest-spi.h | 0 .../include/gtest/gtest-test-part.h | 0 .../include/gtest/gtest-typed-test.h | 126 +- .../googletest/include/gtest/gtest.h | 46 +- .../include/gtest/gtest_pred_impl.h | 0 .../googletest/include/gtest/gtest_prod.h | 0 .../include/gtest/internal/custom/README.md | 0 .../gtest/internal/custom/gtest-port.h | 0 .../gtest/internal/custom/gtest-printers.h | 0 .../include/gtest/internal/custom/gtest.h | 0 .../internal/gtest-death-test-internal.h | 51 +- .../include/gtest/internal/gtest-filepath.h | 8 +- .../include/gtest/internal/gtest-internal.h | 98 +- .../include/gtest/internal/gtest-param-util.h | 154 +- .../include/gtest/internal/gtest-port-arch.h | 2 + .../include/gtest/internal/gtest-port.h | 141 +- .../include/gtest/internal/gtest-string.h | 0 .../include/gtest/internal/gtest-type-util.h | 0 .../googletest/googletest/src/gtest-all.cc | 0 .../googletest/src/gtest-assertion-result.cc | 0 .../googletest/src/gtest-death-test.cc | 36 +- .../googletest/src/gtest-filepath.cc | 2 +- .../googletest/src/gtest-internal-inl.h | 46 +- .../googletest/src/gtest-matchers.cc | 0 .../googletest/googletest/src/gtest-port.cc | 98 +- .../googletest/src/gtest-printers.cc | 0 .../googletest/src/gtest-test-part.cc | 0 .../googletest/src/gtest-typed-test.cc | 0 .../googletest/googletest/src/gtest.cc | 287 +- .../googletest/googletest/src/gtest_main.cc | 0 vendor/noa/vendor/vendorpull/LICENSE | 661 ++++ vendor/noa/vendor/vendorpull/pull | 123 + 433 files changed, 63442 insertions(+), 2708 deletions(-) delete mode 100644 cmake/FindGoogleTest.cmake create mode 100644 cmake/FindNoa.cmake delete mode 100644 vendor/googletest.mask create mode 100644 vendor/jsontoolkit/cmake/FindNoa.cmake delete mode 100644 vendor/jsontoolkit/src/regex/CMakeLists.txt delete mode 100644 vendor/jsontoolkit/src/regex/include/sourcemeta/jsontoolkit/regex.h delete mode 100644 vendor/jsontoolkit/src/regex/regex.cc delete mode 100644 vendor/jsontoolkit/vendor/boost-regex.mask create mode 100644 vendor/jsontoolkit/vendor/noa/CMakeLists.txt rename vendor/jsontoolkit/{ => vendor/noa}/cmake/FindBoostRegex.cmake (94%) rename vendor/jsontoolkit/{ => vendor/noa}/cmake/FindGoogleBenchmark.cmake (100%) create mode 100644 vendor/jsontoolkit/vendor/noa/cmake/FindGoogleTest.cmake rename vendor/jsontoolkit/vendor/noa/cmake/{ => noa}/noa.cmake (67%) create mode 100644 vendor/jsontoolkit/vendor/noa/cmake/noa/targets/executable.cmake create mode 100644 vendor/jsontoolkit/vendor/noa/cmake/noa/targets/googlebenchmark.cmake create mode 100644 vendor/jsontoolkit/vendor/noa/cmake/noa/targets/googletest.cmake rename vendor/jsontoolkit/vendor/noa/cmake/noa/{ => targets}/library.cmake (95%) create mode 100644 vendor/jsontoolkit/vendor/noa/config.cmake.in create mode 100644 vendor/jsontoolkit/vendor/noa/src/flat_map/CMakeLists.txt rename vendor/jsontoolkit/{src/json/include/sourcemeta/jsontoolkit/json_flat_map.h => vendor/noa/src/flat_map/include/sourcemeta/noa/flat_map.h} (92%) create mode 100644 vendor/jsontoolkit/vendor/noa/src/hash/CMakeLists.txt create mode 100644 vendor/jsontoolkit/vendor/noa/src/hash/include/sourcemeta/noa/hash.h create mode 100644 vendor/jsontoolkit/vendor/noa/src/regex/CMakeLists.txt create mode 100644 vendor/jsontoolkit/vendor/noa/src/regex/include/sourcemeta/noa/regex.h rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/cregex.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex.h (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/concepts.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/config.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/config/borland.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/config/cwchar.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/icu.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/mfc.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/pattern_except.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/pending/object_cache.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/pending/static_mutex.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/pending/unicode_iterator.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/regex_traits.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/user.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/basic_regex.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/basic_regex_creator.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/basic_regex_parser.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/c_regex_traits.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/char_regex_traits.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/cpp_regex_traits.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/cregex.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/error_type.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/icu.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/indexed_bit_flag.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/iterator_category.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/iterator_traits.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/match_flags.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/match_results.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/mem_block_cache.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/object_cache.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/pattern_except.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/perl_matcher.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/perl_matcher_common.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/perl_matcher_non_recursive.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/perl_matcher_recursive.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/primary_transform.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/protected_call.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regbase.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_format.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_fwd.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_grep.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_iterator.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_match.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_merge.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_raw_buffer.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_replace.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_search.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_split.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_token_iterator.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_traits.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_traits_defaults.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/regex_workaround.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/states.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/sub_match.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/syntax_type.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/u32regex_iterator.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/u32regex_token_iterator.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/unicode_iterator.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v4/w32_regex_traits.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/basic_regex.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/basic_regex_creator.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/basic_regex_parser.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/c_regex_traits.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/char_regex_traits.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/cpp_regex_traits.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/cregex.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/error_type.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/icu.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/iterator_category.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/iterator_traits.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/match_flags.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/match_results.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/mem_block_cache.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/object_cache.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/pattern_except.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/perl_matcher.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/perl_matcher_common.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/perl_matcher_non_recursive.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/primary_transform.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regbase.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_format.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_fwd.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_grep.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_iterator.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_match.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_merge.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_raw_buffer.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_replace.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_search.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_split.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_token_iterator.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_traits.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_traits_defaults.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/regex_workaround.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/states.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/sub_match.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/syntax_type.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/u32regex_iterator.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/u32regex_token_iterator.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/unicode_iterator.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex/v5/w32_regex_traits.hpp (100%) rename vendor/jsontoolkit/vendor/{ => noa/vendor}/boost-regex/include/boost/regex_fwd.hpp (100%) create mode 100644 vendor/jsontoolkit/vendor/noa/vendor/vendorpull/LICENSE create mode 100755 vendor/jsontoolkit/vendor/noa/vendor/vendorpull/pull create mode 100644 vendor/noa/CMakeLists.txt create mode 100644 vendor/noa/cmake/FindBoostRegex.cmake create mode 100644 vendor/noa/cmake/FindGoogleBenchmark.cmake create mode 100644 vendor/noa/cmake/FindGoogleTest.cmake rename vendor/noa/cmake/{ => noa}/noa.cmake (67%) create mode 100644 vendor/noa/cmake/noa/targets/executable.cmake create mode 100644 vendor/noa/cmake/noa/targets/googlebenchmark.cmake create mode 100644 vendor/noa/cmake/noa/targets/googletest.cmake rename vendor/noa/cmake/noa/{ => targets}/library.cmake (92%) create mode 100644 vendor/noa/config.cmake.in create mode 100644 vendor/noa/src/flat_map/CMakeLists.txt create mode 100644 vendor/noa/src/flat_map/include/sourcemeta/noa/flat_map.h create mode 100644 vendor/noa/src/hash/CMakeLists.txt create mode 100644 vendor/noa/src/hash/include/sourcemeta/noa/hash.h create mode 100644 vendor/noa/src/regex/CMakeLists.txt create mode 100644 vendor/noa/src/regex/include/sourcemeta/noa/regex.h create mode 100644 vendor/noa/vendor/boost-regex/include/boost/cregex.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex.h create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/concepts.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/config.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/config/borland.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/config/cwchar.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/icu.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/mfc.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/pattern_except.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/pending/object_cache.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/pending/static_mutex.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/pending/unicode_iterator.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/regex_traits.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/user.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/basic_regex.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/basic_regex_creator.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/basic_regex_parser.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/c_regex_traits.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/char_regex_traits.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/cpp_regex_traits.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/cregex.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/error_type.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/icu.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/indexed_bit_flag.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/iterator_category.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/iterator_traits.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/match_flags.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/match_results.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/mem_block_cache.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/object_cache.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/pattern_except.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/perl_matcher.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/perl_matcher_common.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/perl_matcher_non_recursive.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/perl_matcher_recursive.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/primary_transform.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/protected_call.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regbase.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_format.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_fwd.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_grep.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_iterator.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_match.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_merge.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_raw_buffer.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_replace.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_search.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_split.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_token_iterator.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_traits.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_traits_defaults.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/regex_workaround.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/states.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/sub_match.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/syntax_type.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/u32regex_iterator.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/u32regex_token_iterator.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/unicode_iterator.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v4/w32_regex_traits.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/basic_regex.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/basic_regex_creator.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/basic_regex_parser.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/c_regex_traits.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/char_regex_traits.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/cpp_regex_traits.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/cregex.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/error_type.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/icu.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/iterator_category.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/iterator_traits.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/match_flags.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/match_results.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/mem_block_cache.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/object_cache.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/pattern_except.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/perl_matcher.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/perl_matcher_common.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/perl_matcher_non_recursive.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/primary_transform.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regbase.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_format.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_fwd.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_grep.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_iterator.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_match.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_merge.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_raw_buffer.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_replace.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_search.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_split.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_token_iterator.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_traits.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_traits_defaults.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/regex_workaround.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/states.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/sub_match.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/syntax_type.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/u32regex_iterator.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/u32regex_token_iterator.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/unicode_iterator.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex/v5/w32_regex_traits.hpp create mode 100644 vendor/noa/vendor/boost-regex/include/boost/regex_fwd.hpp create mode 100644 vendor/noa/vendor/googlebenchmark/CMakeLists.txt create mode 100644 vendor/noa/vendor/googlebenchmark/LICENSE create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/AddCXXCompilerFlag.cmake create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/CXXFeatureCheck.cmake create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/Config.cmake.in create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/GetGitVersion.cmake create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/GoogleTest.cmake create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/GoogleTest.cmake.in create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/Modules/FindLLVMAr.cmake create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/Modules/FindLLVMNm.cmake create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/Modules/FindLLVMRanLib.cmake create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/Modules/FindPFM.cmake create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/benchmark.pc.in create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/benchmark_main.pc.in create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/gnu_posix_regex.cpp create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/llvm-toolchain.cmake create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/posix_regex.cpp create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/pthread_affinity.cpp create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/split_list.cmake create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/std_regex.cpp create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/steady_clock.cpp create mode 100644 vendor/noa/vendor/googlebenchmark/cmake/thread_safety_attributes.cpp create mode 100644 vendor/noa/vendor/googlebenchmark/include/benchmark/benchmark.h create mode 100644 vendor/noa/vendor/googlebenchmark/include/benchmark/export.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/CMakeLists.txt create mode 100644 vendor/noa/vendor/googlebenchmark/src/arraysize.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/benchmark.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/benchmark_api_internal.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/benchmark_api_internal.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/benchmark_main.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/benchmark_name.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/benchmark_register.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/benchmark_register.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/benchmark_runner.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/benchmark_runner.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/check.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/check.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/colorprint.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/colorprint.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/commandlineflags.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/commandlineflags.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/complexity.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/complexity.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/console_reporter.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/counter.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/counter.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/csv_reporter.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/cycleclock.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/internal_macros.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/json_reporter.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/log.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/mutex.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/perf_counters.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/perf_counters.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/re.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/reporter.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/statistics.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/statistics.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/string_util.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/string_util.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/sysinfo.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/thread_manager.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/thread_timer.h create mode 100644 vendor/noa/vendor/googlebenchmark/src/timers.cc create mode 100644 vendor/noa/vendor/googlebenchmark/src/timers.h rename vendor/{ => noa/vendor}/googletest/CMakeLists.txt (77%) rename vendor/{ => noa/vendor}/googletest/LICENSE (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/CMakeLists.txt (89%) rename vendor/{ => noa/vendor}/googletest/googlemock/cmake/gmock.pc.in (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/cmake/gmock_main.pc.in (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/gmock-actions.h (98%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/gmock-cardinalities.h (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/gmock-function-mocker.h (99%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/gmock-matchers.h (98%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/gmock-more-actions.h (99%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/gmock-more-matchers.h (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/gmock-nice-strict.h (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/gmock-spec-builders.h (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/gmock.h (87%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/internal/custom/README.md (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/internal/custom/gmock-port.h (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h (98%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/internal/gmock-port.h (95%) rename vendor/{ => noa/vendor}/googletest/googlemock/include/gmock/internal/gmock-pp.h (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/src/gmock-all.cc (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/src/gmock-cardinalities.cc (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/src/gmock-internal-utils.cc (98%) rename vendor/{ => noa/vendor}/googletest/googlemock/src/gmock-matchers.cc (95%) rename vendor/{ => noa/vendor}/googletest/googlemock/src/gmock-spec-builders.cc (99%) rename vendor/{ => noa/vendor}/googletest/googlemock/src/gmock.cc (100%) rename vendor/{ => noa/vendor}/googletest/googlemock/src/gmock_main.cc (100%) rename vendor/{ => noa/vendor}/googletest/googletest/CMakeLists.txt (93%) rename vendor/{ => noa/vendor}/googletest/googletest/cmake/Config.cmake.in (78%) rename vendor/{ => noa/vendor}/googletest/googletest/cmake/gtest.pc.in (100%) rename vendor/{ => noa/vendor}/googletest/googletest/cmake/gtest_main.pc.in (100%) rename vendor/{ => noa/vendor}/googletest/googletest/cmake/internal_utils.cmake (91%) rename vendor/{ => noa/vendor}/googletest/googletest/cmake/libgtest.la.in (100%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/gtest-assertion-result.h (99%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/gtest-death-test.h (97%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/gtest-matchers.h (100%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/gtest-message.h (95%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/gtest-param-test.h (98%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/gtest-printers.h (93%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/gtest-spi.h (100%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/gtest-test-part.h (100%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/gtest-typed-test.h (80%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/gtest.h (98%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/gtest_pred_impl.h (100%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/gtest_prod.h (100%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/internal/custom/README.md (100%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/internal/custom/gtest-port.h (100%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/internal/custom/gtest-printers.h (100%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/internal/custom/gtest.h (100%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h (98%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/internal/gtest-filepath.h (97%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/internal/gtest-internal.h (94%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/internal/gtest-param-util.h (89%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/internal/gtest-port-arch.h (98%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/internal/gtest-port.h (94%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/internal/gtest-string.h (100%) rename vendor/{ => noa/vendor}/googletest/googletest/include/gtest/internal/gtest-type-util.h (100%) rename vendor/{ => noa/vendor}/googletest/googletest/src/gtest-all.cc (100%) rename vendor/{ => noa/vendor}/googletest/googletest/src/gtest-assertion-result.cc (100%) rename vendor/{ => noa/vendor}/googletest/googletest/src/gtest-death-test.cc (98%) rename vendor/{ => noa/vendor}/googletest/googletest/src/gtest-filepath.cc (99%) rename vendor/{ => noa/vendor}/googletest/googletest/src/gtest-internal-inl.h (98%) rename vendor/{ => noa/vendor}/googletest/googletest/src/gtest-matchers.cc (100%) rename vendor/{ => noa/vendor}/googletest/googletest/src/gtest-port.cc (94%) rename vendor/{ => noa/vendor}/googletest/googletest/src/gtest-printers.cc (100%) rename vendor/{ => noa/vendor}/googletest/googletest/src/gtest-test-part.cc (100%) rename vendor/{ => noa/vendor}/googletest/googletest/src/gtest-typed-test.cc (100%) rename vendor/{ => noa/vendor}/googletest/googletest/src/gtest.cc (97%) rename vendor/{ => noa/vendor}/googletest/googletest/src/gtest_main.cc (100%) create mode 100644 vendor/noa/vendor/vendorpull/LICENSE create mode 100755 vendor/noa/vendor/vendorpull/pull diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8f95226f..38e68e58 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -124,6 +124,12 @@ jobs: ${{ matrix.platform.options }} - run: cmake --build ./build --config Release --target clang_format_test - run: cmake --build ./build --config Release --parallel 4 + - run: > + cmake --install ./build --prefix ./build/dist --config Release --verbose + --component sourcemeta_noa + - run: > + cmake --install ./build --prefix ./build/dist --config Release --verbose + --component sourcemeta_noa_dev - run: > cmake --install ./build --prefix ./build/dist --config Release --verbose --component sourcemeta_jsontoolkit @@ -171,7 +177,7 @@ jobs: - name: Tests (Windows) # TODO: Run Bucket MinIO tests on Windows - run: cd ./build && ctest --build-config Release --exclude-regex e2e_Bucket --output-on-failure --parallel + run: cd ./build && ctest --build-config Release --exclude-regex hydra.bucket_e2e --output-on-failure --parallel if: runner.os == 'windows' env: SOURCEMETA_HYDRA_TEST_HTTPCLIENT_BASE_URL: 'http://localhost:${{ env.HTTPCLIENT_STUB_PORT }}' diff --git a/CMakeLists.txt b/CMakeLists.txt index d6f1709d..1f01c08c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,6 @@ cmake_minimum_required(VERSION 3.16) project(hydra VERSION 0.0.1 LANGUAGES C CXX DESCRIPTION "A convenience networking library for modern C++") list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") -include(vendor/noa/cmake/noa.cmake) # Options option(HYDRA_CRYPTO "Build the Hydra crypto library" ON) @@ -21,6 +20,8 @@ option(HYDRA_INSTALL "Install the Hydra library" ON) option(HYDRA_ADDRESS_SANITIZER "Build Hydra with an address sanitizer" OFF) option(HYDRA_UNDEFINED_SANITIZER "Build Hydra with an undefined behavior sanitizer" OFF) +find_package(Noa REQUIRED) + if(HYDRA_INSTALL) include(GNUInstallDirs) include(CMakePackageConfigHelpers) @@ -88,7 +89,6 @@ endif() # Testing if(HYDRA_TESTS) - find_package(GoogleTest REQUIRED) enable_testing() if(HYDRA_HTTPCLIENT OR HYDRA_HTTPSERVER OR HYDRA_BUCKET) diff --git a/DEPENDENCIES b/DEPENDENCIES index 982ec2ce..d54f85aa 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -1,8 +1,7 @@ vendorpull https://github.com/sourcemeta/vendorpull 70342aaf458e6cb80baeb5b718901075fc42ede6 -noa https://github.com/sourcemeta/noa caad2e1ceedf9fd1a18686a6a6d1e2b9757ead75 -jsontoolkit https://github.com/sourcemeta/jsontoolkit 93a921d0f1e99bfdfe14bfd4d2acf5981294080b +noa https://github.com/sourcemeta/noa a8d36453236abc365f08a76a486f92c84f976fd9 +jsontoolkit https://github.com/sourcemeta/jsontoolkit 60a3862ad0d9642c97685f94aeaed96ab3509690 bearssl https://www.bearssl.org/git/BearSSL 8ef7680081c61b486622f2d983c0d3d21e83caad zlib https://github.com/madler/zlib 51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf uwebsockets https://github.com/uNetworking/uWebSockets v20.71.0 -googletest https://github.com/google/googletest 987e225614755fec7253aa95bf959c09e0d380d7 curl https://github.com/curl/curl curl-8_11_1 diff --git a/Makefile b/Makefile index 19b7493e..b9988bb9 100644 --- a/Makefile +++ b/Makefile @@ -25,6 +25,10 @@ configure: .always compile: .always $(CMAKE) --build ./build --config $(PRESET) --target clang_format $(CMAKE) --build ./build --config $(PRESET) --parallel 4 + $(CMAKE) --install ./build --prefix ./build/dist --config $(PRESET) --verbose \ + --component sourcemeta_noa + $(CMAKE) --install ./build --prefix ./build/dist --config $(PRESET) --verbose \ + --component sourcemeta_noa_dev $(CMAKE) --install ./build --prefix ./build/dist --config $(PRESET) --verbose \ --component sourcemeta_jsontoolkit $(CMAKE) --install ./build --prefix ./build/dist --config $(PRESET) --verbose \ diff --git a/cmake/FindGoogleTest.cmake b/cmake/FindGoogleTest.cmake deleted file mode 100644 index f2339d4b..00000000 --- a/cmake/FindGoogleTest.cmake +++ /dev/null @@ -1,5 +0,0 @@ -include(GoogleTest) -set(BUILD_GMOCK ON CACHE BOOL "enable googlemock") -set(INSTALL_GTEST OFF CACHE BOOL "disable installation") -add_subdirectory("${PROJECT_SOURCE_DIR}/vendor/googletest") -set(GoogleTest_FOUND ON) diff --git a/cmake/FindNoa.cmake b/cmake/FindNoa.cmake new file mode 100644 index 00000000..7782a9b8 --- /dev/null +++ b/cmake/FindNoa.cmake @@ -0,0 +1,12 @@ +if(NOT Noa_FOUND) + if(HYDRA_INSTALL) + set(NOA_INSTALL ON CACHE BOOL "enable Noa installation") + else() + set(NOA_INSTALL OFF CACHE BOOL "disable Noa installation") + endif() + + set(NOA_GOOGLETEST ${HYDRA_TESTS} CACHE BOOL "GoogleTest") + set(NOA_GOOGLEBENCHMARK OFF CACHE BOOL "GoogleBenchmark") + add_subdirectory("${PROJECT_SOURCE_DIR}/vendor/noa") + set(Noa_FOUND ON) +endif() diff --git a/test/e2e/bucket/CMakeLists.txt b/test/e2e/bucket/CMakeLists.txt index 4d810cad..4a723351 100644 --- a/test/e2e/bucket/CMakeLists.txt +++ b/test/e2e/bucket/CMakeLists.txt @@ -1,19 +1,14 @@ -add_executable(sourcemeta_hydra_bucket_e2e - environment.h fetch_json_test.cc +noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME bucket_e2e + FOLDER "Hydra/Bucket" + SOURCES environment.h fetch_json_test.cc fetch_or_upsert_test.cc upsert_json_test.cc) -noa_add_default_options(PRIVATE sourcemeta_hydra_bucket_e2e) -target_link_libraries(sourcemeta_hydra_bucket_e2e - PRIVATE GTest::gtest GTest::gtest_main) -target_link_libraries(sourcemeta_hydra_bucket_e2e +target_link_libraries(sourcemeta_hydra_bucket_e2e_unit PRIVATE sourcemeta::hydra::bucket) -target_link_libraries(sourcemeta_hydra_bucket_e2e +target_link_libraries(sourcemeta_hydra_bucket_e2e_unit PRIVATE sourcemeta::jsontoolkit::json) -set_target_properties(sourcemeta_hydra_bucket_e2e - PROPERTIES FOLDER "Hydra/Bucket") -gtest_discover_tests(sourcemeta_hydra_bucket_e2e) if(NOA_COMPILER_MSVC) - target_compile_definitions(sourcemeta_hydra_bucket_e2e + target_compile_definitions(sourcemeta_hydra_bucket_e2e_unit PRIVATE _CRT_SECURE_NO_WARNINGS) endif() diff --git a/test/e2e/httpclient/CMakeLists.txt b/test/e2e/httpclient/CMakeLists.txt index 32f5a750..f42569bb 100644 --- a/test/e2e/httpclient/CMakeLists.txt +++ b/test/e2e/httpclient/CMakeLists.txt @@ -1,15 +1,11 @@ -add_executable(sourcemeta_hydra_httpclient_e2e - environment.h request_1_1_test.cc stream_1_1_test.cc) -noa_add_default_options(PRIVATE sourcemeta_hydra_httpclient_e2e) -target_link_libraries(sourcemeta_hydra_httpclient_e2e - PRIVATE GTest::gtest GTest::gtest_main) -target_link_libraries(sourcemeta_hydra_httpclient_e2e +noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME httpclient_e2e + FOLDER "Hydra/HTTP Client" + SOURCES environment.h request_1_1_test.cc stream_1_1_test.cc) + +target_link_libraries(sourcemeta_hydra_httpclient_e2e_unit PRIVATE sourcemeta::hydra::httpclient) -set_target_properties(sourcemeta_hydra_httpclient_e2e - PROPERTIES FOLDER "Hydra/HTTP Client") -gtest_discover_tests(sourcemeta_hydra_httpclient_e2e) if(NOA_COMPILER_MSVC) - target_compile_definitions(sourcemeta_hydra_httpclient_e2e + target_compile_definitions(sourcemeta_hydra_httpclient_e2e_unit PRIVATE _CRT_SECURE_NO_WARNINGS) endif() diff --git a/test/e2e/httpserver/CMakeLists.txt b/test/e2e/httpserver/CMakeLists.txt index 25a0bf84..1ad7443c 100644 --- a/test/e2e/httpserver/CMakeLists.txt +++ b/test/e2e/httpserver/CMakeLists.txt @@ -9,15 +9,11 @@ target_compile_definitions(sourcemeta_hydra_httpserver_e2e_stub PRIVATE STATIC_PATH="${CMAKE_CURRENT_SOURCE_DIR}/static") noa_add_default_options(PRIVATE sourcemeta_hydra_httpserver_e2e_stub) -add_executable(sourcemeta_hydra_httpserver_e2e - environment.h httpserver_test.cc) -noa_add_default_options(PRIVATE sourcemeta_hydra_httpserver_e2e) -target_link_libraries(sourcemeta_hydra_httpserver_e2e - PRIVATE GTest::gtest GTest::gtest_main) -target_link_libraries(sourcemeta_hydra_httpserver_e2e +noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME httpserver_e2e + FOLDER "Hydra/HTTP Server" + SOURCES environment.h httpserver_test.cc) + +target_link_libraries(sourcemeta_hydra_httpserver_e2e_unit PRIVATE sourcemeta::hydra::httpclient) -target_link_libraries(sourcemeta_hydra_httpserver_e2e +target_link_libraries(sourcemeta_hydra_httpserver_e2e_unit PRIVATE sourcemeta::jsontoolkit::json) -set_target_properties(sourcemeta_hydra_httpserver_e2e - PROPERTIES FOLDER "Hydra/HTTP server") -gtest_discover_tests(sourcemeta_hydra_httpserver_e2e) diff --git a/test/unit/bucket/CMakeLists.txt b/test/unit/bucket/CMakeLists.txt index 0659e767..9ac1c37b 100644 --- a/test/unit/bucket/CMakeLists.txt +++ b/test/unit/bucket/CMakeLists.txt @@ -1,12 +1,8 @@ -add_executable(sourcemeta_hydra_bucket_unit - cache_test.cc datastamp_test.cc iso8601_test.cc aws_sigv4_test.cc) -noa_add_default_options(PRIVATE sourcemeta_hydra_bucket_unit) -target_link_libraries(sourcemeta_hydra_bucket_unit - PRIVATE GTest::gtest GTest::gtest_main) +noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME bucket + FOLDER "Hydra/Bucket" + SOURCES cache_test.cc datastamp_test.cc iso8601_test.cc aws_sigv4_test.cc) + target_link_libraries(sourcemeta_hydra_bucket_unit PRIVATE sourcemeta::hydra::bucket) target_link_libraries(sourcemeta_hydra_bucket_unit PRIVATE sourcemeta::hydra::crypto) -set_target_properties(sourcemeta_hydra_bucket_unit - PROPERTIES FOLDER "Hydra/Bucket") -gtest_discover_tests(sourcemeta_hydra_bucket_unit) diff --git a/test/unit/crypto/CMakeLists.txt b/test/unit/crypto/CMakeLists.txt index 127e8b93..1fe688c8 100644 --- a/test/unit/crypto/CMakeLists.txt +++ b/test/unit/crypto/CMakeLists.txt @@ -1,11 +1,7 @@ -add_executable(sourcemeta_hydra_crypto_unit - uuid_test.cc base64_test.cc - md5_test.cc sha256_test.cc hmac_sha256_test.cc) -noa_add_default_options(PRIVATE sourcemeta_hydra_crypto_unit) -target_link_libraries(sourcemeta_hydra_crypto_unit - PRIVATE GTest::gtest GTest::gmock GTest::gtest_main) +noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME crypto + FOLDER "Hydra/Crypto" + SOURCES uuid_test.cc base64_test.cc + md5_test.cc sha256_test.cc hmac_sha256_test.cc) + target_link_libraries(sourcemeta_hydra_crypto_unit PRIVATE sourcemeta::hydra::crypto) -set_target_properties(sourcemeta_hydra_crypto_unit - PROPERTIES FOLDER "Hydra/Crypto") -gtest_discover_tests(sourcemeta_hydra_crypto_unit) diff --git a/test/unit/http/CMakeLists.txt b/test/unit/http/CMakeLists.txt index d63118e0..8c3a2e09 100644 --- a/test/unit/http/CMakeLists.txt +++ b/test/unit/http/CMakeLists.txt @@ -1,11 +1,7 @@ -add_executable(sourcemeta_hydra_http_unit - time_test.cc status_test.cc method_test.cc +noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME http + FOLDER "Hydra/HTTP" + SOURCES time_test.cc status_test.cc method_test.cc header_test.cc mime_test.cc) -noa_add_default_options(PRIVATE sourcemeta_hydra_http_unit) -target_link_libraries(sourcemeta_hydra_http_unit - PRIVATE GTest::gtest GTest::gtest_main) + target_link_libraries(sourcemeta_hydra_http_unit PRIVATE sourcemeta::hydra::http) -set_target_properties(sourcemeta_hydra_http_unit - PROPERTIES FOLDER "Hydra/HTTP") -gtest_discover_tests(sourcemeta_hydra_http_unit) diff --git a/test/unit/httpserver/CMakeLists.txt b/test/unit/httpserver/CMakeLists.txt index 9d150ce5..8fd086c8 100644 --- a/test/unit/httpserver/CMakeLists.txt +++ b/test/unit/httpserver/CMakeLists.txt @@ -1,9 +1,6 @@ -add_executable(sourcemeta_hydra_httpserver_unit logger_test.cc) -noa_add_default_options(PRIVATE sourcemeta_hydra_httpserver_unit) -target_link_libraries(sourcemeta_hydra_httpserver_unit - PRIVATE GTest::gtest GTest::gmock GTest::gtest_main) +noa_googletest(NAMESPACE sourcemeta PROJECT hydra NAME httpserver + FOLDER "Hydra/HTTP Server" + SOURCES logger_test.cc) + target_link_libraries(sourcemeta_hydra_httpserver_unit PRIVATE sourcemeta::hydra::httpserver) -set_target_properties(sourcemeta_hydra_httpserver_unit - PROPERTIES FOLDER "Hydra/HTTP Server") -gtest_discover_tests(sourcemeta_hydra_httpserver_unit) diff --git a/vendor/googletest.mask b/vendor/googletest.mask deleted file mode 100644 index 1df04717..00000000 --- a/vendor/googletest.mask +++ /dev/null @@ -1,16 +0,0 @@ -googletest/test -googletest/docs -googletest/samples -googletest/README.md -googlemock/docs -googlemock/test -googlemock/README.md -docs -ci -.clang-format -BUILD.bazel -CONTRIBUTING.md -CONTRIBUTORS -googletest_deps.bzl -README.md -WORKSPACE diff --git a/vendor/jsontoolkit/CMakeLists.txt b/vendor/jsontoolkit/CMakeLists.txt index 9c94c943..7858527a 100644 --- a/vendor/jsontoolkit/CMakeLists.txt +++ b/vendor/jsontoolkit/CMakeLists.txt @@ -3,12 +3,10 @@ project(jsontoolkit VERSION 2.0.0 LANGUAGES C CXX DESCRIPTION "The swiss-army knife for JSON programming in C++" HOMEPAGE_URL "https://jsontoolkit.sourcemeta.com") list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") -include(vendor/noa/cmake/noa.cmake) # Options option(JSONTOOLKIT_URI "Build the JSON Toolkit URI library" ON) option(JSONTOOLKIT_JSON "Build the JSON Toolkit JSON library" ON) -option(JSONTOOLKIT_REGEX "Build the JSON Toolkit Regex library" ON) option(JSONTOOLKIT_JSONSCHEMA "Build the JSON Toolkit JSON Schema library" ON) option(JSONTOOLKIT_JSONPOINTER "Build the JSON Toolkit JSON Pointer library" ON) option(JSONTOOLKIT_JSONL "Build the JSON Toolkit JSONL library" ON) @@ -20,6 +18,8 @@ option(JSONTOOLKIT_INSTALL "Install the JSON Toolkit library" ON) option(JSONTOOLKIT_ADDRESS_SANITIZER "Build JSON Toolkit with an address sanitizer" OFF) option(JSONTOOLKIT_UNDEFINED_SANITIZER "Build JSON Toolkit with an undefined behavior sanitizer" OFF) +find_package(Noa REQUIRED) + if(JSONTOOLKIT_INSTALL) include(GNUInstallDirs) include(CMakePackageConfigHelpers) @@ -46,11 +46,6 @@ if(JSONTOOLKIT_JSON) add_subdirectory(src/json) endif() -if(JSONTOOLKIT_JSON AND JSONTOOLKIT_REGEX) - find_package(BoostRegex REQUIRED) - add_subdirectory(src/regex) -endif() - if(JSONTOOLKIT_JSON AND JSONTOOLKIT_JSONPOINTER) add_subdirectory(src/jsonpointer) endif() @@ -82,7 +77,6 @@ endif() if(PROJECT_IS_TOP_LEVEL) noa_target_clang_format(SOURCES - bindings/*.cc src/*.h src/*.cc benchmark/*.h benchmark/*.cc test/*.h test/*.cc) @@ -92,7 +86,6 @@ endif() # Testing if(JSONTOOLKIT_TESTS) - find_package(GoogleTest REQUIRED) enable_testing() if(JSONTOOLKIT_URI) @@ -103,10 +96,6 @@ if(JSONTOOLKIT_TESTS) add_subdirectory(test/json) endif() - if(JSONTOOLKIT_JSON AND JSONTOOLKIT_REGEX) - add_subdirectory(test/regex) - endif() - if(JSONTOOLKIT_JSON AND JSONTOOLKIT_JSONPOINTER) add_subdirectory(test/jsonpointer) endif() @@ -133,7 +122,6 @@ if(JSONTOOLKIT_TESTS) endif() if(JSONTOOLKIT_BENCHMARK) - find_package(GoogleBenchmark REQUIRED) add_subdirectory(benchmark) endif() endif() diff --git a/vendor/jsontoolkit/cmake/FindNoa.cmake b/vendor/jsontoolkit/cmake/FindNoa.cmake new file mode 100644 index 00000000..8e1fc3b8 --- /dev/null +++ b/vendor/jsontoolkit/cmake/FindNoa.cmake @@ -0,0 +1,12 @@ +if(NOT Noa_FOUND) + if(JSONTOOLKIT_INSTALL) + set(NOA_INSTALL ON CACHE BOOL "enable Noa installation") + else() + set(NOA_INSTALL OFF CACHE BOOL "disable Noa installation") + endif() + + set(NOA_GOOGLETEST ${JSONTOOLKIT_TESTS} CACHE BOOL "GoogleTest") + set(NOA_GOOGLEBENCHMARK ${JSONTOOLKIT_BENCHMARK} CACHE BOOL "GoogleBenchmark") + add_subdirectory("${PROJECT_SOURCE_DIR}/vendor/noa") + set(Noa_FOUND ON) +endif() diff --git a/vendor/jsontoolkit/config.cmake.in b/vendor/jsontoolkit/config.cmake.in index ade27e94..3bc5bc28 100644 --- a/vendor/jsontoolkit/config.cmake.in +++ b/vendor/jsontoolkit/config.cmake.in @@ -6,7 +6,6 @@ list(APPEND JSONTOOLKIT_COMPONENTS ${jsontoolkit_FIND_COMPONENTS}) if(NOT JSONTOOLKIT_COMPONENTS) list(APPEND JSONTOOLKIT_COMPONENTS uri) list(APPEND JSONTOOLKIT_COMPONENTS json) - list(APPEND JSONTOOLKIT_COMPONENTS regex) list(APPEND JSONTOOLKIT_COMPONENTS jsonl) list(APPEND JSONTOOLKIT_COMPONENTS jsonpointer) list(APPEND JSONTOOLKIT_COMPONENTS jsonschema) @@ -20,11 +19,8 @@ foreach(component ${JSONTOOLKIT_COMPONENTS}) find_dependency(uriparser) include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_jsontoolkit_uri.cmake") elseif(component STREQUAL "json") + find_dependency(noa) include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_jsontoolkit_json.cmake") - elseif(component STREQUAL "regex") - include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_jsontoolkit_json.cmake") - find_dependency(BoostRegex) - include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_jsontoolkit_regex.cmake") elseif(component STREQUAL "jsonl") include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_jsontoolkit_json.cmake") include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_jsontoolkit_jsonl.cmake") diff --git a/vendor/jsontoolkit/src/json/CMakeLists.txt b/vendor/jsontoolkit/src/json/CMakeLists.txt index 37fbb4d9..bffa672f 100644 --- a/vendor/jsontoolkit/src/json/CMakeLists.txt +++ b/vendor/jsontoolkit/src/json/CMakeLists.txt @@ -1,8 +1,11 @@ noa_library(NAMESPACE sourcemeta PROJECT jsontoolkit NAME json FOLDER "JSON Toolkit/JSON" - PRIVATE_HEADERS array.h error.h object.h value.h hash.h flat_map.h + PRIVATE_HEADERS array.h error.h object.h value.h hash.h SOURCES grammar.h parser.h stringify.h json.cc json_value.cc) if(JSONTOOLKIT_INSTALL) noa_library_install(NAMESPACE sourcemeta PROJECT jsontoolkit NAME json) endif() + +target_link_libraries(sourcemeta_jsontoolkit_json + PUBLIC sourcemeta::noa::flat_map) diff --git a/vendor/jsontoolkit/src/json/include/sourcemeta/jsontoolkit/json_hash.h b/vendor/jsontoolkit/src/json/include/sourcemeta/jsontoolkit/json_hash.h index abfa638f..a8d9afe6 100644 --- a/vendor/jsontoolkit/src/json/include/sourcemeta/jsontoolkit/json_hash.h +++ b/vendor/jsontoolkit/src/json/include/sourcemeta/jsontoolkit/json_hash.h @@ -13,30 +13,29 @@ template struct FastHash { return value.fast_hash(); } - struct property_hash_type { + inline auto is_perfect(const hash_type) const noexcept -> bool { + return false; + } +}; + +/// @ingroup json +template struct KeyHash { + struct hash_type { using type = std::uint64_t; type a{0}; type b{0}; type c{0}; type d{0}; - inline auto operator==(const property_hash_type &other) const noexcept - -> bool { + inline auto operator==(const hash_type &other) const noexcept -> bool { return this->a == other.a && this->b == other.b && this->c == other.c && this->d == other.d; } - - inline auto is_perfect() const noexcept -> bool { - // If there is anything written past the first byte, - // then it is a perfect hash - return this->a > 255; - } }; - inline auto operator()(const typename T::String &value) const noexcept - -> property_hash_type { + inline auto operator()(const T &value) const noexcept -> hash_type { const auto size{value.size()}; - property_hash_type result; + hash_type result; if (size == 0) { return result; } else if (size <= 31) { @@ -47,13 +46,18 @@ template struct FastHash { // This case is specifically designed to be constant with regards to // string length, and to exploit the fact that most JSON objects don't // have a lot of entries, so hash collision is not as common - return {(size + - static_cast(value.front()) + - static_cast(value.back())) % + return {(size + static_cast(value.front()) + + static_cast(value.back())) % // Make sure the property hash can never exceed 8 bits 256}; } } + + inline auto is_perfect(const hash_type &hash) const noexcept -> bool { + // If there is anything written past the first byte, + // then it is a perfect hash + return hash.a > 255; + } }; } // namespace sourcemeta::jsontoolkit diff --git a/vendor/jsontoolkit/src/json/include/sourcemeta/jsontoolkit/json_object.h b/vendor/jsontoolkit/src/json/include/sourcemeta/jsontoolkit/json_object.h index a5d7396b..d5082b93 100644 --- a/vendor/jsontoolkit/src/json/include/sourcemeta/jsontoolkit/json_object.h +++ b/vendor/jsontoolkit/src/json/include/sourcemeta/jsontoolkit/json_object.h @@ -4,7 +4,7 @@ #include // std::equal_to, std::less #include // std::initializer_list -#include +#include namespace sourcemeta::jsontoolkit { @@ -12,7 +12,7 @@ namespace sourcemeta::jsontoolkit { template class JSONObject { public: // Constructors - using Container = FlatMap; + using Container = sourcemeta::noa::FlatMap; JSONObject() : data{} {} JSONObject(std::initializer_list values) diff --git a/vendor/jsontoolkit/src/json/include/sourcemeta/jsontoolkit/json_value.h b/vendor/jsontoolkit/src/json/include/sourcemeta/jsontoolkit/json_value.h index b883f7b1..abe4b39e 100644 --- a/vendor/jsontoolkit/src/json/include/sourcemeta/jsontoolkit/json_value.h +++ b/vendor/jsontoolkit/src/json/include/sourcemeta/jsontoolkit/json_value.h @@ -43,7 +43,7 @@ class SOURCEMETA_JSONTOOLKIT_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>; /* * Constructors diff --git a/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer.h b/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer.h index 8236eb04..67580384 100644 --- a/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer.h +++ b/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer.h @@ -31,10 +31,11 @@ namespace sourcemeta::jsontoolkit { /// @ingroup jsonpointer -using Pointer = GenericPointer; +using Pointer = GenericPointer>; /// @ingroup jsonpointer -using WeakPointer = GenericPointer>; +using WeakPointer = GenericPointer, + KeyHash>; /// @ingroup jsonpointer /// A global constant instance of the empty JSON Pointer. diff --git a/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer_pointer.h b/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer_pointer.h index 90759137..c82840e1 100644 --- a/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer_pointer.h +++ b/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer_pointer.h @@ -17,7 +17,7 @@ namespace sourcemeta::jsontoolkit { /// @ingroup jsonpointer -template class GenericPointer { +template class GenericPointer { public: using Token = GenericToken; using Value = typename Token::Value; @@ -206,7 +206,7 @@ template class GenericPointer { /// assert(pointer.at(1).to_property() == "bar"); /// assert(pointer.at(2).to_property() == "baz"); /// ``` - auto push_back(const GenericPointer &other) -> void { + auto push_back(const GenericPointer &other) -> void { if (other.empty()) { return; } else if (other.size() == 1) { @@ -239,7 +239,7 @@ template class GenericPointer { /// assert(pointer.at(1).to_property() == "bar"); /// assert(pointer.at(2).to_property() == "baz"); /// ``` - auto push_back(GenericPointer &&other) -> void { + auto push_back(GenericPointer &&other) -> void { if (other.empty()) { return; } else if (other.size() == 1) { @@ -277,7 +277,7 @@ template class GenericPointer { template >>> - auto push_back(const GenericPointer &other) -> void { + auto push_back(const GenericPointer &other) -> void { if (other.empty()) { return; } else if (other.size() == 1) { @@ -422,9 +422,9 @@ template class GenericPointer { /// assert(pointer.at(1).is_property()); /// assert(pointer.at(1).to_property() == "bar"); /// ``` - [[nodiscard]] auto initial() const -> GenericPointer { + [[nodiscard]] auto initial() const -> GenericPointer { assert(!this->empty()); - GenericPointer result{*this}; + GenericPointer result{*this}; result.pop_back(); return result; } @@ -441,9 +441,9 @@ template class GenericPointer { /// assert(left.concat(right) == /// sourcemeta::jsontoolkit::Pointer{"foo", "bar", "baz"}); /// ``` - auto concat(const GenericPointer &other) const - -> GenericPointer { - GenericPointer result{*this}; + auto concat(const GenericPointer &other) const + -> GenericPointer { + GenericPointer result{*this}; result.push_back(other); return result; } @@ -459,7 +459,7 @@ template class GenericPointer { /// const sourcemeta::jsontoolkit::Pointer prefix{"foo", "bar"}; /// assert(pointer.starts_with(prefix)); /// ``` - auto starts_with(const GenericPointer &other) const -> bool { + auto starts_with(const GenericPointer &other) const -> bool { return other.data.size() <= this->data.size() && std::equal(other.data.cbegin(), other.data.cend(), this->data.cbegin()); @@ -477,7 +477,7 @@ template class GenericPointer { /// const sourcemeta::jsontoolkit::Pointer prefix{"foo", "bar", "baz"}; /// assert(pointer.starts_with(prefix, tail)); /// ``` - auto starts_with(const GenericPointer &other, + auto starts_with(const GenericPointer &other, const Token &tail) const -> bool { if (other.size() == this->size() + 1) { assert(!other.empty()); @@ -498,7 +498,7 @@ template class GenericPointer { /// const sourcemeta::jsontoolkit::Pointer prefix{"foo", "bar", "qux"}; /// assert(pointer.starts_with_initial(prefix)); /// ``` - auto starts_with_initial(const GenericPointer &other) const + auto starts_with_initial(const GenericPointer &other) const -> bool { const auto prefix_size{other.size()}; if (prefix_size == 0) { @@ -529,9 +529,9 @@ template class GenericPointer { /// assert(pointer.rebase(prefix, replacement) == /// sourcemeta::jsontoolkit::Pointer{"qux", "baz"}); /// ``` - auto rebase(const GenericPointer &prefix, - const GenericPointer &replacement) const - -> GenericPointer { + auto rebase(const GenericPointer &prefix, + const GenericPointer &replacement) const + -> GenericPointer { typename Container::size_type index{0}; while (index < prefix.size()) { if (index >= this->size() || prefix.data[index] != this->data[index]) { @@ -545,7 +545,7 @@ template class GenericPointer { assert(this->starts_with(prefix)); auto new_begin{this->data.cbegin()}; std::advance(new_begin, index); - GenericPointer result{replacement}; + GenericPointer result{replacement}; std::copy(new_begin, this->data.cend(), std::back_inserter(result.data)); return result; } @@ -564,8 +564,8 @@ template class GenericPointer { /// /// If the JSON Pointer is not relative to the base, a copy of the original /// input pointer is returned. - auto resolve_from(const GenericPointer &base) const - -> GenericPointer { + auto resolve_from(const GenericPointer &base) const + -> GenericPointer { typename Container::size_type index{0}; while (index < base.size()) { if (index >= this->size() || base.data[index] != this->data[index]) { @@ -578,20 +578,20 @@ template class GenericPointer { // Make a pointer from the remaining tokens auto new_begin{this->data.cbegin()}; std::advance(new_begin, index); - GenericPointer result; + GenericPointer result; std::copy(new_begin, this->data.cend(), std::back_inserter(result.data)); return result; } /// Compare JSON Pointer instances - auto operator==(const GenericPointer &other) const noexcept + auto operator==(const GenericPointer &other) const noexcept -> bool { return this->data == other.data; } /// Overload to support ordering of JSON Pointers. Typically for sorting /// reasons. - auto operator<(const GenericPointer &other) const noexcept + auto operator<(const GenericPointer &other) const noexcept -> bool { return this->data < other.data; } diff --git a/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer_position.h b/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer_position.h index 1d9893ee..82298597 100644 --- a/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer_position.h +++ b/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer_position.h @@ -43,7 +43,7 @@ namespace sourcemeta::jsontoolkit { /// ``` class SOURCEMETA_JSONTOOLKIT_JSONPOINTER_EXPORT PositionTracker { public: - using Pointer = GenericPointer; + using Pointer = GenericPointer>; using Position = std::tuple; auto operator()(const CallbackPhase phase, const JSON::Type, diff --git a/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer_token.h b/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer_token.h index 4b9eb206..de27fa95 100644 --- a/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer_token.h +++ b/vendor/jsontoolkit/src/jsonpointer/include/sourcemeta/jsontoolkit/jsonpointer_token.h @@ -18,7 +18,7 @@ template class GenericToken { /// precomputed hash. This is advanced functionality that should be used with /// care. GenericToken(const Property &value, - const typename Hash::property_hash_type property_hash) + const typename Hash::hash_type property_hash) : as_property{true}, property{value}, hash{property_hash}, index{0} {} /// This constructor creates an JSON Pointer token from a string. For @@ -172,7 +172,7 @@ template class GenericToken { /// assert(token.property_hash() >= 0); /// ``` [[nodiscard]] auto property_hash() const noexcept -> - typename Hash::property_hash_type { + typename Hash::hash_type { assert(this->is_property()); return this->hash; } @@ -271,7 +271,7 @@ template class GenericToken { bool as_property; Property property; - typename Hash::property_hash_type hash; + typename Hash::hash_type hash; Index index; }; diff --git a/vendor/jsontoolkit/src/jsonpointer/jsonpointer.cc b/vendor/jsontoolkit/src/jsonpointer/jsonpointer.cc index 62312393..f09b8605 100644 --- a/vendor/jsontoolkit/src/jsonpointer/jsonpointer.cc +++ b/vendor/jsontoolkit/src/jsonpointer/jsonpointer.cc @@ -15,8 +15,9 @@ namespace { template