From c0f166800cb72a5289015dfc8859c9e00eb06ba3 Mon Sep 17 00:00:00 2001 From: Jens Date: Fri, 10 Apr 2026 20:58:34 +0200 Subject: [PATCH 01/17] Pin simdjson to v4.6.1 --- .gitmodules | 3 +++ others/simdjson | 1 + 2 files changed, 4 insertions(+) create mode 160000 others/simdjson diff --git a/.gitmodules b/.gitmodules index 05927d49d1..077ed43c9c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,6 @@ [submodule "others/mbedtls"] path = others/mbedtls url = https://github.com/Mbed-TLS/mbedtls.git +[submodule "others/simdjson"] + path = others/simdjson + url = https://github.com/simdjson/simdjson.git diff --git a/others/simdjson b/others/simdjson new file mode 160000 index 0000000000..fb83b114ef --- /dev/null +++ b/others/simdjson @@ -0,0 +1 @@ +Subproject commit fb83b114efcec4544eba8d45e3c7969ca756c086 From 98fd8f715a4bfdb56729f12da111a05770e9436b Mon Sep 17 00:00:00 2001 From: Jens Date: Fri, 10 Apr 2026 22:03:44 +0200 Subject: [PATCH 02/17] Pin jsoncons to v1.6.0 --- .gitmodules | 3 +++ others/jsoncons | 1 + 2 files changed, 4 insertions(+) create mode 160000 others/jsoncons diff --git a/.gitmodules b/.gitmodules index 077ed43c9c..b3b0cf963c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,6 @@ [submodule "others/simdjson"] path = others/simdjson url = https://github.com/simdjson/simdjson.git +[submodule "others/jsoncons"] + path = others/jsoncons + url = https://github.com/danielaparker/jsoncons.git diff --git a/others/jsoncons b/others/jsoncons new file mode 160000 index 0000000000..dd7c22bfe8 --- /dev/null +++ b/others/jsoncons @@ -0,0 +1 @@ +Subproject commit dd7c22bfe81de17834e957d855a779ed0e61355b From a30e0dacc720df5b28595194d2d0747200165b0b Mon Sep 17 00:00:00 2001 From: Jens Date: Sat, 11 Apr 2026 06:16:01 +0200 Subject: [PATCH 03/17] remove yajl --- build/msc_find_lib.m4 | 8 +- build/win32/CMakeLists.txt | 33 +- build/win32/conanfile.txt | 1 - build/win32/config.h.cmake | 11 +- build/yajl.m4 | 33 - configure.ac | 88 ++- examples/multiprocess_c/Makefile.am | 7 +- examples/multithread/Makefile.am | 11 +- .../reading_logs_via_rule_message/Makefile.am | 11 +- examples/reading_logs_with_offset/Makefile.am | 11 +- examples/simple_example_using_c/Makefile.am | 7 +- examples/using_bodies_in_chunks/Makefile.am | 11 +- headers/modsecurity/transaction.h | 19 - modsecurity.pc.in | 2 +- others/jsoncons | 2 +- src/Makefile.am | 28 +- src/modsecurity.cc | 159 ++-- src/parser/Makefile.am | 1 - src/request_body_processor/json.cc | 304 ++++---- src/request_body_processor/json.h | 41 +- src/request_body_processor/json_adapter.cc | 82 ++ src/request_body_processor/json_adapter.h | 35 + src/request_body_processor/json_backend.h | 80 ++ .../json_backend_jsoncons.cc | 610 +++++++++++++++ .../json_backend_simdjson.cc | 377 +++++++++ src/transaction.cc | 311 +++----- src/utils/json_writer.cc | 199 +++++ src/utils/json_writer.h | 74 ++ test/Makefile.am | 28 +- test/benchmark/Makefile.am | 5 +- test/common/json.h | 340 ++++++++ test/common/modsecurity_test.cc | 48 +- test/common/modsecurity_test.h | 1 + test/fuzzer/Makefile.am | 4 +- test/regression/regression.cc | 6 - test/regression/regression_test.cc | 729 +++++++++++------- test/regression/regression_test.h | 32 +- ...st-body-parser-json-backend-edgecases.json | 677 ++++++++++++++++ test/test-suite.in | 1 + test/unit/unit_test.cc | 119 ++- test/unit/unit_test.h | 9 +- tools/rules-check/Makefile.am | 7 +- 42 files changed, 3532 insertions(+), 1030 deletions(-) delete mode 100644 build/yajl.m4 create mode 100644 src/request_body_processor/json_adapter.cc create mode 100644 src/request_body_processor/json_adapter.h create mode 100644 src/request_body_processor/json_backend.h create mode 100644 src/request_body_processor/json_backend_jsoncons.cc create mode 100644 src/request_body_processor/json_backend_simdjson.cc create mode 100644 src/utils/json_writer.cc create mode 100644 src/utils/json_writer.h create mode 100644 test/common/json.h create mode 100644 test/test-cases/regression/request-body-parser-json-backend-edgecases.json diff --git a/build/msc_find_lib.m4 b/build/msc_find_lib.m4 index 77fdb38d38..dc800a9839 100644 --- a/build/msc_find_lib.m4 +++ b/build/msc_find_lib.m4 @@ -10,11 +10,11 @@ dnl Sets and AC_SUBSTs: dnl ${NAME}_CFLAGS, ${NAME}_LDADD, ${NAME}_LDFLAGS, dnl ${NAME}_VERSION, ${NAME}_DISPLAY, ${NAME}_FOUND (0/1/2) dnl -dnl NAME - Variable prefix (e.g., YAJL, CURL, LIBXML2) +dnl NAME - Variable prefix (e.g., CURL, LIBXML2, LMDB) dnl PKG_NAMES - Space-separated pkg-config names to try -dnl HEADER - Header file to look for (e.g., yajl/yajl_parse.h) +dnl HEADER - Header file to look for (e.g., libxml/parser.h) dnl LIB_NAMES - Space-separated library names for -l flags -dnl EXTRA_CFLAGS - Additional CFLAGS when found (e.g., -DWITH_YAJL) +dnl EXTRA_CFLAGS - Additional CFLAGS when found (e.g., -DWITH_LIBXML2) dnl MIN_VERSION - Optional minimum version for pkg-config check dnl WITH_NAME - Optional --with-X name if different from lowercased NAME @@ -208,7 +208,7 @@ if test "${_msc_header_dir}" = "."; then _msc_check_inc_path="$4" fi else - # Header with subdirectory (e.g., "yajl/yajl_parse.h") + # Header with subdirectory (e.g., "libxml/parser.h") if test -e "$4/include/$2"; then _msc_check_inc_path="$4/include" elif test -e "$4/$2"; then diff --git a/build/win32/CMakeLists.txt b/build/win32/CMakeLists.txt index fbf39f08d9..1fbe029c91 100644 --- a/build/win32/CMakeLists.txt +++ b/build/win32/CMakeLists.txt @@ -7,6 +7,8 @@ option(WITH_LUA "Include LUA support" ON) option(WITH_LIBXML2 "Include LibXML2 support" ON) option(WITH_MAXMIND "Include MaxMind support" ON) option(WITH_CURL "Include CURL support" ON) +set(JSON_BACKEND "simdjson" CACHE STRING "Select internal JSON backend (simdjson or jsoncons)") +set_property(CACHE JSON_BACKEND PROPERTY STRINGS simdjson jsoncons) option(USE_ASAN "Build with Address Sanitizer" OFF) @@ -51,6 +53,8 @@ target_compile_definitions(libinjection PRIVATE LIBINJECTION_VERSION="${LIBINJEC project(mbedcrypto C) set(MBEDTLS_DIR ${BASE_DIR}/others/mbedtls) +set(SIMDJSON_DIR ${BASE_DIR}/others/simdjson/singleheader) +set(JSONCONS_DIR ${BASE_DIR}/others/jsoncons/include) add_library(mbedcrypto STATIC ${MBEDTLS_DIR}/library/base64.c ${MBEDTLS_DIR}/library/sha1.c ${MBEDTLS_DIR}/library/md5.c ${MBEDTLS_DIR}/library/platform_util.c ${MBEDTLS_DIR}/library/constant_time.c) @@ -87,7 +91,25 @@ set(PACKAGE_VERSION "${PROJECT_VERSION}") set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") set(PACKAGE_TARNAME "${PACKAGE_NAME}") -set(HAVE_YAJL 1) # should always be one, mandatory dependency +if(NOT JSON_BACKEND STREQUAL "simdjson" AND NOT JSON_BACKEND STREQUAL "jsoncons") + message(FATAL_ERROR "Unsupported JSON_BACKEND '${JSON_BACKEND}'. Use simdjson or jsoncons.") +endif() + +unset(MSC_JSON_BACKEND_SIMDJSON) +unset(MSC_JSON_BACKEND_JSONCONS) +set(JSON_BACKEND_SIMDJSON_SOURCE ${BASE_DIR}/src/request_body_processor/json_backend_simdjson.cc) +set(JSON_BACKEND_JSONCONS_SOURCE ${BASE_DIR}/src/request_body_processor/json_backend_jsoncons.cc) + +if(JSON_BACKEND STREQUAL "simdjson") + set(MSC_JSON_BACKEND_SIMDJSON 1) + set(JSON_BACKEND_SOURCES ${JSON_BACKEND_SIMDJSON_SOURCE} ${SIMDJSON_DIR}/simdjson.cpp) + set(JSON_BACKEND_INCLUDE_DIR ${SIMDJSON_DIR}) +else() + set(MSC_JSON_BACKEND_JSONCONS 1) + set(JSON_BACKEND_SOURCES ${JSON_BACKEND_JSONCONS_SOURCE}) + set(JSON_BACKEND_INCLUDE_DIR ${JSONCONS_DIR}) +endif() + set(HAVE_GEOIP 0) # should always be zero, no conan package available set(HAVE_SSDEEP 0) # should always be zero, no conan package available @@ -119,7 +141,6 @@ macro(include_package package flag) endif() endmacro() -include_package(yajl HAVE_YAJL) include_package(libxml2 HAVE_LIBXML2) include_package(lua HAVE_LUA) include_package(CURL HAVE_CURL) @@ -133,11 +154,13 @@ include_package(maxminddb HAVE_MAXMIND) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) file(GLOB_RECURSE libModSecuritySources ${BASE_DIR}/src/*.cc) +list(REMOVE_ITEM libModSecuritySources ${JSON_BACKEND_SIMDJSON_SOURCE} ${JSON_BACKEND_JSONCONS_SOURCE}) +list(APPEND libModSecuritySources ${JSON_BACKEND_SOURCES}) add_library(libModSecurity SHARED ${libModSecuritySources}) target_compile_definitions(libModSecurity PRIVATE WITH_PCRE2) -target_include_directories(libModSecurity PRIVATE ${BASE_DIR} ${BASE_DIR}/headers ${BASE_DIR}/others ${MBEDTLS_DIR}/include) +target_include_directories(libModSecurity PRIVATE ${BASE_DIR} ${BASE_DIR}/headers ${BASE_DIR}/others ${MBEDTLS_DIR}/include ${JSON_BACKEND_INCLUDE_DIR}) target_link_libraries(libModSecurity PRIVATE pcre2::pcre2 libinjection mbedcrypto Poco::Poco Iphlpapi.lib) macro(add_package_dependency project compile_definition link_library flag) @@ -147,7 +170,6 @@ macro(add_package_dependency project compile_definition link_library flag) endif() endmacro() -add_package_dependency(libModSecurity WITH_YAJL yajl::yajl HAVE_YAJL) add_package_dependency(libModSecurity WITH_LIBXML2 LibXml2::LibXml2 HAVE_LIBXML2) add_package_dependency(libModSecurity WITH_LUA lua::lua HAVE_LUA) if(HAVE_LUA) @@ -164,9 +186,8 @@ project(libModSecurityTests) function(setTestTargetProperties executable) target_compile_definitions(${executable} PRIVATE WITH_PCRE2) - target_include_directories(${executable} PRIVATE ${BASE_DIR} ${BASE_DIR}/headers) + target_include_directories(${executable} PRIVATE ${BASE_DIR} ${BASE_DIR}/headers ${JSONCONS_DIR}) target_link_libraries(${executable} PRIVATE libModSecurity pcre2::pcre2 dirent::dirent) - add_package_dependency(${executable} WITH_YAJL yajl::yajl HAVE_YAJL) endfunction() # unit tests diff --git a/build/win32/conanfile.txt b/build/win32/conanfile.txt index b8f9721d0a..0eddc175e4 100644 --- a/build/win32/conanfile.txt +++ b/build/win32/conanfile.txt @@ -1,5 +1,4 @@ [requires] -yajl/2.1.0 pcre2/10.42 libxml2/2.12.6 lua/5.4.6 diff --git a/build/win32/config.h.cmake b/build/win32/config.h.cmake index 2f6a73085e..d56ce7c56f 100644 --- a/build/win32/config.h.cmake +++ b/build/win32/config.h.cmake @@ -57,12 +57,15 @@ /* Define if SSDEEP is available */ #cmakedefine HAVE_SSDEEP -/* Define if YAJL is available */ -#cmakedefine HAVE_YAJL - /* Define if libcurl is available */ #cmakedefine HAVE_CURL +/* Define if jsoncons is the selected internal JSON backend */ +#cmakedefine MSC_JSON_BACKEND_JSONCONS + +/* Define if simdjson is the selected internal JSON backend */ +#cmakedefine MSC_JSON_BACKEND_SIMDJSON + /* Name of package */ #define PACKAGE "@PACKAGE_NAME@" @@ -89,4 +92,4 @@ #cmakedefine STDC_HEADERS #endif -#endif // ndef MODSECURITY_CONFIG_H \ No newline at end of file +#endif // ndef MODSECURITY_CONFIG_H diff --git a/build/yajl.m4 b/build/yajl.m4 deleted file mode 100644 index 06271e1fea..0000000000 --- a/build/yajl.m4 +++ /dev/null @@ -1,33 +0,0 @@ -dnl Check for YAJL Libraries -dnl Sets: -dnl YAJL_CFLAGS -dnl YAJL_LDADD -dnl YAJL_LDFLAGS -dnl YAJL_VERSION -dnl YAJL_DISPLAY -dnl YAJL_FOUND - -AC_DEFUN([PROG_YAJL], [ -MSC_CHECK_LIB([YAJL], [yajl2 yajl], [yajl/yajl_parse.h], [yajl], [-DWITH_YAJL]) - -# FIX: if the include directory in CFLAGS ends with "include/yajl", -# remove the suffix "/yajl". The library header files are included -# using the prefix (e.g., #include ), and -# this is even the case for the library itself (e.g., -# yajl_tree.h includes yajl/yajl_common.h). -_msc_yajl_new_cflags="" -for _msc_yajl_flag in $YAJL_CFLAGS; do - case "$_msc_yajl_flag" in - -I*/include/yajl) - _msc_yajl_new_flag="${_msc_yajl_flag%/yajl}" - _msc_yajl_new_cflags="$_msc_yajl_new_cflags $_msc_yajl_new_flag" - ;; - *) - _msc_yajl_new_cflags="$_msc_yajl_new_cflags $_msc_yajl_flag" - ;; - esac -done -YAJL_CFLAGS="$_msc_yajl_new_cflags" -YAJL_DISPLAY="${YAJL_LDADD}, ${YAJL_CFLAGS}" - -]) # AC_DEFUN [PROG_YAJL] diff --git a/configure.ac b/configure.ac index 03295be063..2287a51d6a 100644 --- a/configure.ac +++ b/configure.ac @@ -27,7 +27,7 @@ m4_define([msc_version_with_patchlevel], [msc_version_major.msc_version_minor.msc_version_patchlevel]) m4_define([msc_version_git], - [m4_esyscmd_s(git describe)]) + [m4_esyscmd_s(git describe --tags --always 2>/dev/null || echo unknown)]) m4_define([msc_version_info], [msc_version_c_plus_a:msc_version_patchlevel:msc_version_minor]) @@ -62,6 +62,23 @@ PKG_PROG_PKG_CONFIG # Set C++ standard version and check if compiler supports it. AX_CXX_COMPILE_STDCXX(17, noext, mandatory) +AC_ARG_WITH([json-backend], + [AS_HELP_STRING([--with-json-backend=BACKEND], + [Select internal JSON backend: simdjson or jsoncons [default=simdjson]])], + [json_backend="$withval"], + [json_backend="simdjson"]) + +case "$json_backend" in + simdjson|jsoncons) + ;; + *) + AC_MSG_ERROR([Unsupported JSON backend '$json_backend'. Use simdjson or jsoncons.]) + ;; +esac + +JSON_BACKEND="$json_backend" +AC_SUBST([JSON_BACKEND]) + # Check for libinjection if ! test -f "${srcdir}/others/libinjection/src/libinjection_html5.c"; then AC_MSG_ERROR([\ @@ -80,7 +97,7 @@ AC_MSG_ERROR([\ ]) fi # Libinjection version -AC_DEFUN([LIBINJECTION_VERSION], m4_esyscmd_s(cd "others/libinjection" && git describe && cd ../..)) +AC_DEFUN([LIBINJECTION_VERSION], m4_esyscmd_s(cd "others/libinjection" && (git describe --tags --always 2>/dev/null || echo unknown) && cd ../..)) AC_SUBST([LIBINJECTION_VERSION]) # Check for Mbed TLS @@ -101,16 +118,56 @@ AC_MSG_ERROR([\ ]) fi # Mbed TLS version -AC_DEFUN([MBEDTLS_VERSION], m4_esyscmd_s(cd "others/mbedtls" && git describe && cd ../..)) +AC_DEFUN([MBEDTLS_VERSION], m4_esyscmd_s(cd "others/mbedtls" && (git describe --tags --always 2>/dev/null || echo unknown) && cd ../..)) -# SecLang test version -AC_DEFUN([SECLANG_TEST_VERSION], m4_esyscmd_s(cd "test/test-cases/secrules-language-tests" && git log -1 --format="%h" --abbrev-commit && cd ../../..)) +# Check for selected JSON backend +if test "x$json_backend" = "xsimdjson"; then +if ! test -f "${srcdir}/others/simdjson/singleheader/simdjson.h" || \ + ! test -f "${srcdir}/others/simdjson/singleheader/simdjson.cpp"; then +AC_MSG_ERROR([\ + + + simdjson was not found within ModSecurity source directory. + + simdjson code is available as part of ModSecurity source code in a format + of a git-submodule. git-submodule allow us to specify the correct version of + simdjson and still uses the simdjson repository to download it. + + You can download simdjson using git: + + $ git submodule update --init --recursive + + ]) +fi +JSON_BACKEND_VERSION=`cd "${srcdir}/others/simdjson" && git describe --tags --always 2>/dev/null || echo unknown` +AC_DEFINE([MSC_JSON_BACKEND_SIMDJSON], [1], + [Define if simdjson is the selected internal JSON backend]) +elif test "x$json_backend" = "xjsoncons"; then +if ! test -d "${srcdir}/others/jsoncons/include" || \ + ! test -f "${srcdir}/others/jsoncons/include/jsoncons/json.hpp"; then +AC_MSG_ERROR([\ + + + jsoncons was not found within ModSecurity source directory. + jsoncons code is available as part of ModSecurity source code in a format + of a git-submodule. git-submodule allow us to specify the correct version of + jsoncons and still uses the jsoncons repository to download it. -# Check for yajl -PROG_YAJL + You can download jsoncons using git: -AM_CONDITIONAL([YAJL_VERSION], [test "$YAJL_VERSION" != ""]) + $ git submodule update --init --recursive + + ]) +fi +JSON_BACKEND_VERSION=`cd "${srcdir}/others/jsoncons" && git describe --tags --always 2>/dev/null || echo unknown` +AC_DEFINE([MSC_JSON_BACKEND_JSONCONS], [1], + [Define if jsoncons is the selected internal JSON backend]) +fi +AC_SUBST([JSON_BACKEND_VERSION]) + +# SecLang test version +AC_DEFUN([SECLANG_TEST_VERSION], m4_esyscmd_s(cd "test/test-cases/secrules-language-tests" && git log -1 --format="%h" --abbrev-commit && cd ../../..)) # Check for LibGeoIP PROG_GEOIP @@ -306,14 +363,7 @@ fi # Decide if we want to build the tests or not. -buildTestUtilities=false -if test "x$YAJL_FOUND" = "x1"; then - # Regression tests will not be able to run without the logging support. - # But we still have the unit tests. - # if test "$debugLogs" = "true"; then - buildTestUtilities=true - # fi -fi +buildTestUtilities=true AM_CONDITIONAL([TEST_UTILITIES], [test $buildTestUtilities = true]) @@ -328,6 +378,8 @@ fi AM_CONDITIONAL([EXAMPLES], [test $buildExamples = true]) AM_CONDITIONAL([BUILD_PARSER], [test $buildParser = true]) AM_CONDITIONAL([USE_MUTEX_ON_PM], [test $mutexPm = true]) +AM_CONDITIONAL([JSON_BACKEND_SIMDJSON], [test "x$json_backend" = "xsimdjson"]) +AM_CONDITIONAL([JSON_BACKEND_JSONCONS], [test "x$json_backend" = "xjsoncons"]) # General link options @@ -422,6 +474,8 @@ AS_ECHO_N(" + libInjection ....") echo LIBINJECTION_VERSION AS_ECHO_N(" + Mbed TLS ....") echo MBEDTLS_VERSION +AS_ECHO_N(" + JSON backend ....") +echo "$JSON_BACKEND ($JSON_BACKEND_VERSION)" AS_ECHO_N(" + SecLang tests ....") echo SECLANG_TEST_VERSION @@ -451,7 +505,6 @@ if test "x$GEOIP_FOUND" = "x2" && test "x$MAXMIND_FOUND" = "x2"; then fi MSC_STATUS_LIB([LibCURL ], [CURL]) -MSC_STATUS_LIB([YAJL ], [YAJL]) MSC_STATUS_LIB([LMDB ], [LMDB]) MSC_STATUS_LIB([LibXML2 ], [LIBXML2]) MSC_STATUS_LIB([SSDEEP ], [SSDEEP]) @@ -532,4 +585,3 @@ if test "$aflFuzzer" = "true"; then echo " $ export CC=afl-clang-fast " echo " " fi - diff --git a/examples/multiprocess_c/Makefile.am b/examples/multiprocess_c/Makefile.am index 726d1d9057..a0011d8c73 100644 --- a/examples/multiprocess_c/Makefile.am +++ b/examples/multiprocess_c/Makefile.am @@ -19,15 +19,12 @@ multi_LDFLAGS = \ -lstdc++ \ $(LUA_LDFLAGS) \ $(SSDEEP_LDFLAGS) \ - $(MAXMIND_LDFLAGS) \ - $(YAJL_LDFLAGS) + $(MAXMIND_LDFLAGS) multi_CFLAGS = \ - -I$(top_builddir)/headers \ + -I$(top_srcdir)/headers \ -I$(top_builddir) \ $(GLOBAL_CFLAGS) MAINTAINERCLEANFILES = \ Makefile.in - - diff --git a/examples/multithread/Makefile.am b/examples/multithread/Makefile.am index 0871efa1e1..c47c13b51f 100644 --- a/examples/multithread/Makefile.am +++ b/examples/multithread/Makefile.am @@ -15,8 +15,7 @@ multithread_LDADD = \ $(LUA_LDADD) \ $(PCRE_LDADD) \ $(PCRE2_LDADD) \ - $(SSDEEP_LDADD) \ - $(YAJL_LDADD) + $(SSDEEP_LDADD) multithread_LDFLAGS = \ -L$(top_builddir)/src/.libs/ \ @@ -28,12 +27,11 @@ multithread_LDFLAGS = \ $(LMDB_LDFLAGS) \ $(LUA_LDFLAGS) \ $(MAXMIND_LDFLAGS) \ - $(SSDEEP_LDFLAGS) \ - $(YAJL_LDFLAGS) + $(SSDEEP_LDFLAGS) multithread_CPPFLAGS = \ $(GLOBAL_CFLAGS) \ - -I$(top_builddir)/headers \ + -I$(top_srcdir)/headers \ -I$(top_builddir) \ -g \ -I../others \ @@ -43,7 +41,6 @@ multithread_CPPFLAGS = \ $(GEOIP_CFLAGS) \ $(GLOBAL_CPPFLAGS) \ $(MODSEC_NO_LOGS) \ - $(YAJL_CFLAGS) \ $(LMDB_CFLAGS) \ $(LUA_CFLAGS) \ $(PCRE_CFLAGS) \ @@ -53,5 +50,3 @@ multithread_CPPFLAGS = \ MAINTAINERCLEANFILES = \ Makefile.in - - diff --git a/examples/reading_logs_via_rule_message/Makefile.am b/examples/reading_logs_via_rule_message/Makefile.am index 5a6ba74b2a..384a84e73b 100644 --- a/examples/reading_logs_via_rule_message/Makefile.am +++ b/examples/reading_logs_via_rule_message/Makefile.am @@ -15,8 +15,7 @@ simple_request_LDADD = \ $(LUA_LDADD) \ $(PCRE_LDADD) \ $(PCRE2_LDADD) \ - $(SSDEEP_LDADD) \ - $(YAJL_LDADD) + $(SSDEEP_LDADD) simple_request_LDFLAGS = \ -L$(top_builddir)/src/.libs/ \ @@ -28,12 +27,11 @@ simple_request_LDFLAGS = \ $(LMDB_LDFLAGS) \ $(LUA_LDFLAGS) \ $(MAXMIND_LDFLAGS) \ - $(SSDEEP_LDFLAGS) \ - $(YAJL_LDFLAGS) + $(SSDEEP_LDFLAGS) simple_request_CPPFLAGS = \ $(GLOBAL_CFLAGS) \ - -I$(top_builddir)/headers \ + -I$(top_srcdir)/headers \ -I$(top_builddir) \ -g \ -I../others \ @@ -43,7 +41,6 @@ simple_request_CPPFLAGS = \ $(GEOIP_CFLAGS) \ $(GLOBAL_CPPFLAGS) \ $(MODSEC_NO_LOGS) \ - $(YAJL_CFLAGS) \ $(LMDB_CFLAGS) \ $(LUA_CFLAGS) \ $(PCRE_CFLAGS) \ @@ -53,5 +50,3 @@ simple_request_CPPFLAGS = \ MAINTAINERCLEANFILES = \ Makefile.in - - diff --git a/examples/reading_logs_with_offset/Makefile.am b/examples/reading_logs_with_offset/Makefile.am index a98ed48d0e..95373a4c47 100644 --- a/examples/reading_logs_with_offset/Makefile.am +++ b/examples/reading_logs_with_offset/Makefile.am @@ -15,8 +15,7 @@ read_LDADD = \ $(LUA_LDADD) \ $(PCRE_LDADD) \ $(PCRE2_LDADD) \ - $(SSDEEP_LDADD) \ - $(YAJL_LDADD) + $(SSDEEP_LDADD) read_LDFLAGS = \ -L$(top_builddir)/src/.libs/ \ @@ -27,12 +26,11 @@ read_LDFLAGS = \ $(LMDB_LDFLAGS) \ $(LUA_LDFLAGS) \ $(SSDEEP_LDFLAGS) \ - $(MAXMIND_LDFLAGS) \ - $(YAJL_LDFLAGS) + $(MAXMIND_LDFLAGS) read_CPPFLAGS = \ $(GLOBAL_CFLAGS) \ - -I$(top_builddir)/headers \ + -I$(top_srcdir)/headers \ -I$(top_builddir) \ -g \ -I../others \ @@ -43,7 +41,6 @@ read_CPPFLAGS = \ $(MAXMIND_CFLAGS) \ $(GLOBAL_CPPFLAGS) \ $(MODSEC_NO_LOGS) \ - $(YAJL_CFLAGS) \ $(LMDB_CFLAGS) \ $(LUA_CFLAGS) \ $(PCRE_CFLAGS) \ @@ -53,5 +50,3 @@ read_CPPFLAGS = \ MAINTAINERCLEANFILES = \ Makefile.in - - diff --git a/examples/simple_example_using_c/Makefile.am b/examples/simple_example_using_c/Makefile.am index b03ab96d48..9bf657ba27 100644 --- a/examples/simple_example_using_c/Makefile.am +++ b/examples/simple_example_using_c/Makefile.am @@ -17,15 +17,12 @@ test_LDFLAGS = \ -lm \ -lstdc++ \ $(LUA_LDFLAGS) \ - $(SSDEEP_LDFLAGS) \ - $(YAJL_LDFLAGS) + $(SSDEEP_LDFLAGS) test_CFLAGS = \ - -I$(top_builddir)/headers \ + -I$(top_srcdir)/headers \ -I$(top_builddir) \ $(GLOBAL_CFLAGS) MAINTAINERCLEANFILES = \ Makefile.in - - diff --git a/examples/using_bodies_in_chunks/Makefile.am b/examples/using_bodies_in_chunks/Makefile.am index 9eb438f368..68c9b34dfa 100644 --- a/examples/using_bodies_in_chunks/Makefile.am +++ b/examples/using_bodies_in_chunks/Makefile.am @@ -15,8 +15,7 @@ simple_request_LDADD = \ $(LUA_LDADD) \ $(PCRE_LDADD) \ $(PCRE2_LDADD) \ - $(SSDEEP_LDADD) \ - $(YAJL_LDADD) + $(SSDEEP_LDADD) simple_request_LDFLAGS = \ -L$(top_builddir)/src/.libs/ \ @@ -27,12 +26,11 @@ simple_request_LDFLAGS = \ $(MAXMIND_LDFLAGS) \ $(LMDB_LDFLAGS) \ $(LUA_LDFLAGS) \ - $(SSDEEP_LDFLAGS) \ - $(YAJL_LDFLAGS) + $(SSDEEP_LDFLAGS) simple_request_CPPFLAGS = \ $(GLOBAL_CFLAGS) \ - -I$(top_builddir)/headers \ + -I$(top_srcdir)/headers \ -I$(top_builddir) \ -g \ -I../others \ @@ -43,7 +41,6 @@ simple_request_CPPFLAGS = \ $(MAXMIND_CFLAGS) \ $(GLOBAL_CPPFLAGS) \ $(MODSEC_NO_LOGS) \ - $(YAJL_CFLAGS) \ $(LMDB_CFLAGS) \ $(LUA_CFLAGS) \ $(PCRE_CFLAGS) \ @@ -52,5 +49,3 @@ simple_request_CPPFLAGS = \ MAINTAINERCLEANFILES = \ Makefile.in - - diff --git a/headers/modsecurity/transaction.h b/headers/modsecurity/transaction.h index 3e70caa38e..5cfaff0f13 100644 --- a/headers/modsecurity/transaction.h +++ b/headers/modsecurity/transaction.h @@ -77,25 +77,6 @@ typedef struct Rules_t RulesSet; do { } while (0); #endif - -#define LOGFY_ADD(a, b) \ - yajl_gen_string(g, reinterpret_cast(a), strlen(a)); \ - if (b.data() == NULL) { \ - yajl_gen_string(g, reinterpret_cast(""), \ - strlen("")); \ - } else { \ - yajl_gen_string(g, reinterpret_cast(b.data()), \ - b.length()); \ - } - -#define LOGFY_ADD_INT(a, b) \ - yajl_gen_string(g, reinterpret_cast(a), strlen(a)); \ - yajl_gen_number(g, reinterpret_cast(b), strlen(b)); - -#define LOGFY_ADD_NUM(a, b) \ - yajl_gen_string(g, reinterpret_cast(a), strlen(a)); \ - yajl_gen_integer(g, b); - #ifdef __cplusplus namespace modsecurity { diff --git a/modsecurity.pc.in b/modsecurity.pc.in index d00ad644fa..19d64b70e9 100644 --- a/modsecurity.pc.in +++ b/modsecurity.pc.in @@ -8,4 +8,4 @@ Description: ModSecurity API Version: @MSC_VERSION_WITH_PATCHLEVEL@ Cflags: -I@includedir@ Libs: -L@libdir@ -lmodsecurity -Libs.private: @CURL_LDADD@ @GEOIP_LDADD@ @MAXMIND_LDADD@ @GLOBAL_LDADD@ @LIBXML2_LDADD@ @LMDB_LDADD@ @LUA_LDADD@ @PCRE_LDADD@ @PCRE2_LDADD@ @SSDEEP_LDADD@ @YAJL_LDADD@ +Libs.private: @CURL_LDADD@ @GEOIP_LDADD@ @MAXMIND_LDADD@ @GLOBAL_LDADD@ @LIBXML2_LDADD@ @LMDB_LDADD@ @LUA_LDADD@ @PCRE_LDADD@ @PCRE2_LDADD@ @SSDEEP_LDADD@ diff --git a/others/jsoncons b/others/jsoncons index dd7c22bfe8..128553c8d1 160000 --- a/others/jsoncons +++ b/others/jsoncons @@ -1 +1 @@ -Subproject commit dd7c22bfe81de17834e957d855a779ed0e61355b +Subproject commit 128553c8d1b222c30819656d123590accb60689d diff --git a/src/Makefile.am b/src/Makefile.am index 14c26697b5..c13e88e86a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -231,6 +231,7 @@ UTILS = \ utils/geo_lookup.cc \ utils/https_client.cc \ utils/ip_tree.cc \ + utils/json_writer.cc \ utils/msc_tree.cc \ utils/random.cc \ utils/regex.cc \ @@ -248,10 +249,28 @@ COLLECTION = \ BODY_PROCESSORS = \ request_body_processor/multipart.cc \ request_body_processor/xml.cc \ - request_body_processor/json.cc + request_body_processor/json.cc \ + request_body_processor/json_adapter.cc + +if JSON_BACKEND_SIMDJSON +BODY_PROCESSORS += \ + request_body_processor/json_backend_simdjson.cc +JSON_BACKEND_SOURCES = \ + ../others/simdjson/singleheader/simdjson.cpp +JSON_BACKEND_CPPFLAGS = \ + -I$(top_srcdir)/others/simdjson/singleheader +endif + +if JSON_BACKEND_JSONCONS +BODY_PROCESSORS += \ + request_body_processor/json_backend_jsoncons.cc +JSON_BACKEND_CPPFLAGS = \ + -I$(top_srcdir)/others/jsoncons/include +endif libmodsecurity_la_SOURCES = \ + $(JSON_BACKEND_SOURCES) \ parser/seclang-parser.cc \ parser/seclang-scanner.cc \ parser/driver.cc \ @@ -295,6 +314,7 @@ libmodsecurity_la_CPPFLAGS = \ -I$(top_builddir) \ -g \ -I$(top_srcdir)/others \ + $(JSON_BACKEND_CPPFLAGS) \ -I$(top_srcdir)/others/mbedtls/include \ -fPIC \ -O3 \ @@ -303,7 +323,6 @@ libmodsecurity_la_CPPFLAGS = \ $(GEOIP_CFLAGS) \ $(GLOBAL_CPPFLAGS) \ $(MODSEC_NO_LOGS) \ - $(YAJL_CFLAGS) \ $(LMDB_CFLAGS) \ $(PCRE_CFLAGS) \ $(PCRE2_CFLAGS) \ @@ -325,7 +344,6 @@ libmodsecurity_la_LDFLAGS = \ $(PCRE2_LDFLAGS) \ $(SSDEEP_LDFLAGS) \ $(MAXMIND_LDFLAGS) \ - $(YAJL_LDFLAGS) \ -version-info @MSC_VERSION_INFO@ @@ -341,6 +359,4 @@ libmodsecurity_la_LIBADD = \ $(PCRE_LDADD) \ $(PCRE2_LDADD) \ $(MAXMIND_LDADD) \ - $(SSDEEP_LDADD) \ - $(YAJL_LDADD) - + $(SSDEEP_LDADD) diff --git a/src/modsecurity.cc b/src/modsecurity.cc index 8f943b7f76..f3632f9cf0 100644 --- a/src/modsecurity.cc +++ b/src/modsecurity.cc @@ -17,10 +17,6 @@ #include "modsecurity/modsecurity.h" #include "src/config.h" -#ifdef WITH_YAJL -#include -#include -#endif #ifdef WITH_LIBXML2 #include #include @@ -38,6 +34,7 @@ #include "src/collection/backend/in_memory-per_process.h" #include "src/collection/backend/lmdb.h" #include "src/unique_id.h" +#include "src/utils/json_writer.h" #include "src/utils/regex.h" #include "src/utils/geo_lookup.h" #include "src/actions/transformations/transformation.h" @@ -214,59 +211,34 @@ void ModSecurity::serverLog(void *data, const RuleMessage &rm) { int ModSecurity::processContentOffset(const char *content, size_t len, const char *matchString, std::string *json, const char **err) { -#ifdef WITH_YAJL Utils::Regex variables("v([0-9]+),([0-9]+)"); Utils::Regex operators("o([0-9]+),([0-9]+)"); Utils::Regex transformations("t:(?:(?!t:).)+"); - yajl_gen g; std::string varValue; - const unsigned char *buf; - size_t jsonSize; + utils::JsonWriter writer(false); std::list vars = variables.searchAll(matchString); std::list ops = operators.searchAll(matchString); std::list trans = transformations.searchAll(matchString); - g = yajl_gen_alloc(NULL); - if (g == NULL) { - *err = "Failed to allocate memory for the JSON creation."; - return -1; - } - - yajl_gen_config(g, yajl_gen_beautify, 0); - - yajl_gen_map_open(g); - yajl_gen_string(g, reinterpret_cast("match"), - strlen("match")); - - yajl_gen_array_open(g); - yajl_gen_map_open(g); - - yajl_gen_string(g, reinterpret_cast("variable"), - strlen("variable")); - - yajl_gen_map_open(g); - yajl_gen_string(g, reinterpret_cast("highlight"), - strlen("highlight")); - - yajl_gen_array_open(g); + writer.start_object(); + writer.key("match"); + writer.start_array(); + writer.start_object(); + writer.key("variable"); + writer.start_object(); + writer.key("highlight"); + writer.start_array(); for(auto [it, pending] = std::tuple{vars.rbegin(), vars.size()}; pending > 3; pending -= 3) { - yajl_gen_map_open(g); + writer.start_object(); it++; const std::string &startingAt = it->str(); it++; const std::string &size = it->str(); it++; - yajl_gen_string(g, - reinterpret_cast("startingAt"), - strlen("startingAt")); - yajl_gen_string(g, - reinterpret_cast(startingAt.c_str()), - startingAt.size()); - yajl_gen_string(g, reinterpret_cast("size"), - strlen("size")); - yajl_gen_string(g, - reinterpret_cast(size.c_str()), - size.size()); - yajl_gen_map_close(g); + writer.key("startingAt"); + writer.string(startingAt); + writer.key("size"); + writer.string(size); + writer.end_object(); if (stoi(startingAt) >= len) { *err = "Offset is out of the content limits."; @@ -280,109 +252,70 @@ int ModSecurity::processContentOffset(const char *content, size_t len, varValue.append(value); } } - yajl_gen_array_close(g); - - yajl_gen_string(g, reinterpret_cast("value"), - strlen("value")); + writer.end_array(); - yajl_gen_array_open(g); + writer.key("value"); + writer.start_array(); - yajl_gen_map_open(g); - yajl_gen_string(g, reinterpret_cast("value"), - strlen("value")); - yajl_gen_string(g, reinterpret_cast(varValue.c_str()), - varValue.size()); - yajl_gen_map_close(g); + writer.start_object(); + writer.key("value"); + writer.string(varValue); + writer.end_object(); while (!trans.empty()) { modsecurity::actions::transformations::Transformation *t; - yajl_gen_map_open(g); - yajl_gen_string(g, - reinterpret_cast("transformation"), - strlen("transformation")); - - yajl_gen_string(g, - reinterpret_cast(trans.back().str().c_str()), - trans.back().str().size()); + writer.start_object(); + writer.key("transformation"); + writer.string(trans.back().str()); t = modsecurity::actions::transformations::Transformation::instantiate( trans.back().str().c_str()); t->transform(varValue, nullptr); trans.pop_back(); - yajl_gen_string(g, reinterpret_cast("value"), - strlen("value")); - yajl_gen_string(g, reinterpret_cast( - varValue.c_str()), - varValue.size()); - yajl_gen_map_close(g); + writer.key("value"); + writer.string(varValue); + writer.end_object(); delete t; } - yajl_gen_array_close(g); - - yajl_gen_string(g, reinterpret_cast("operator"), - strlen("operator")); + writer.end_array(); - yajl_gen_map_open(g); + writer.key("operator"); + writer.start_object(); for(auto [it, pending] = std::tuple{ops.rbegin(), ops.size()}; pending > 3; pending -= 3) { - yajl_gen_string(g, reinterpret_cast("highlight"), - strlen("highlight")); - yajl_gen_map_open(g); + writer.key("highlight"); + writer.start_object(); it++; const std::string &startingAt = it->str(); it++; const std::string &size = ops.back().str(); it++; - yajl_gen_string(g, - reinterpret_cast("startingAt"), - strlen("startingAt")); - yajl_gen_string(g, - reinterpret_cast(startingAt.c_str()), - startingAt.size()); - yajl_gen_string(g, reinterpret_cast("size"), - strlen("size")); - yajl_gen_string(g, - reinterpret_cast(size.c_str()), - size.size()); - yajl_gen_map_close(g); + writer.key("startingAt"); + writer.string(startingAt); + writer.key("size"); + writer.string(size); + writer.end_object(); if (stoi(startingAt) >= varValue.size()) { *err = "Offset is out of the variable limits."; return -1; } - yajl_gen_string(g, - reinterpret_cast("value"), - strlen("value")); const auto value = std::string(varValue, stoi(startingAt), stoi(size)); - yajl_gen_string(g, - reinterpret_cast(value.c_str()), - value.size()); + writer.key("value"); + writer.string(value); } - yajl_gen_map_close(g); - - - yajl_gen_map_close(g); - yajl_gen_array_close(g); - - yajl_gen_map_close(g); - yajl_gen_array_close(g); - yajl_gen_map_close(g); + writer.end_object(); + writer.end_object(); + writer.end_array(); + writer.end_object(); - yajl_gen_get_buf(g, &buf, &jsonSize); - - json->assign(reinterpret_cast(buf), jsonSize); + json->assign(writer.to_string()); json->append("\n"); - - yajl_gen_free(g); return 0; -#else - *err = "Without YAJL support, we cannot generate JSON."; - return -1; -#endif } diff --git a/src/parser/Makefile.am b/src/parser/Makefile.am index 685675819f..205e8ba4d2 100644 --- a/src/parser/Makefile.am +++ b/src/parser/Makefile.am @@ -22,7 +22,6 @@ libmodsec_parser_la_CPPFLAGS = \ $(GEOIP_CFLAGS) \ $(GLOBAL_CPPFLAGS) \ $(MODSEC_NO_LOGS) \ - $(YAJL_CFLAGS) \ $(LMDB_CFLAGS) \ $(PCRE_CFLAGS) \ $(PCRE2_CFLAGS) \ diff --git a/src/request_body_processor/json.cc b/src/request_body_processor/json.cc index f56704effa..57a14a5853 100644 --- a/src/request_body_processor/json.cc +++ b/src/request_body_processor/json.cc @@ -13,15 +13,12 @@ * */ - -#ifdef WITH_YAJL - #include "src/request_body_processor/json.h" -#include -#include #include +#include "src/request_body_processor/json_adapter.h" + namespace modsecurity { namespace RequestBodyProcessor { @@ -30,78 +27,33 @@ static const double json_depth_limit_default = 10000.0; static const char* json_depth_limit_exceeded_msg = ". Parsing depth limit exceeded"; JSON::JSON(Transaction *transaction) : m_transaction(transaction), - m_handle(NULL), m_current_key(""), + m_data(""), m_max_depth(json_depth_limit_default), m_current_depth(0), m_depth_limit_exceeded(false) { - /** - * yajl callback functions - * For more information on the function signatures and order, check - * http://lloyd.github.com/yajl/yajl-1.0.12/structyajl__callbacks.html - */ - - /** - * yajl configuration and callbacks - */ - static yajl_callbacks callbacks = { - yajl_null, - yajl_boolean, - NULL /* yajl_integer */, - NULL /* yajl_double */, - yajl_number, - yajl_string, - yajl_start_map, - yajl_map_key, - yajl_end_map, - yajl_start_array, - yajl_end_array - }; - - - /** - * yajl initialization - * - * yajl_parser_config definition: - * http://lloyd.github.io/yajl/yajl-2.0.1/yajl__parse_8h.html#aec816c5518264d2ac41c05469a0f986c - * - * TODO: make UTF8 validation optional, as it depends on Content-Encoding - */ - m_handle = yajl_alloc(&callbacks, NULL, this); - - yajl_config(m_handle, yajl_allow_partial_values, 0); } JSON::~JSON() { - while (m_containers.size() > 0) { - JSONContainer *a = m_containers.back(); - m_containers.pop_back(); - delete a; - } - yajl_free(m_handle); + clearContainers(); } bool JSON::init() { + clearContainers(); + m_current_key.clear(); + m_data.clear(); + m_current_depth = 0; + m_depth_limit_exceeded = false; + return true; } bool JSON::processChunk(const char *buf, unsigned int size, std::string *err) { - /* Feed our parser and catch any errors */ - m_status = yajl_parse(m_handle, - (const unsigned char *)buf, size); - if (m_status != yajl_status_ok) { - unsigned char *e = yajl_get_error(m_handle, 0, - (const unsigned char *)buf, size); - /* We need to free the yajl error message later, how to do this? */ - err->assign((const char *)e); - if (m_depth_limit_exceeded) { - err->append(json_depth_limit_exceeded_msg); - } - yajl_free_error(m_handle, e); - return false; + if (buf != nullptr && size > 0) { + m_data.append(buf, size); } return true; @@ -109,16 +61,63 @@ bool JSON::processChunk(const char *buf, unsigned int size, std::string *err) { bool JSON::complete(std::string *err) { - /* Wrap up the parsing process */ - m_status = yajl_complete_parse(m_handle); - if (m_status != yajl_status_ok) { - unsigned char *e = yajl_get_error(m_handle, 0, NULL, 0); - /* We need to free the yajl error message later, how to do this? */ - err->assign((const char *)e); - if (m_depth_limit_exceeded) { + if (m_data.empty()) { + return true; + } + + JSONAdapter adapter; + JsonParseResult result = adapter.parse(m_data, + static_cast(this)); + + if (!result.ok()) { + if (result.sink_status == JsonSinkStatus::DepthLimitExceeded) { + m_depth_limit_exceeded = true; + } + if (err != nullptr) { + switch (result.parse_status) { + case JsonParseStatus::ParseError: + if (result.detail.empty()) { + err->assign("Invalid JSON body."); + } else { + err->assign(result.detail); + } + break; + case JsonParseStatus::TruncatedInput: + if (result.detail.empty()) { + err->assign("Incomplete JSON body."); + } else { + err->assign(result.detail); + } + break; + case JsonParseStatus::Utf8Error: + if (result.detail.empty()) { + err->assign("Invalid UTF-8 in JSON body."); + } else { + err->assign(result.detail); + } + break; + case JsonParseStatus::EngineAbort: + if (result.detail.empty()) { + err->assign("JSON traversal aborted by ModSecurity."); + } else { + err->assign(result.detail); + } + break; + case JsonParseStatus::InternalError: + if (result.detail.empty()) { + err->assign("Internal JSON backend failure."); + } else { + err->assign(result.detail); + } + break; + case JsonParseStatus::Ok: + err->clear(); + break; + } + } + if (m_depth_limit_exceeded && err != nullptr) { err->append(json_depth_limit_exceeded_msg); - } - yajl_free_error(m_handle, e); + } return false; } @@ -163,158 +162,123 @@ int JSON::addArgument(const std::string& value) { } -/** - * Callback for hash key values; we use those to define the variable names - * under ARGS. Whenever we reach a new key, we update the current key value. - */ -int JSON::yajl_map_key(void *ctx, const unsigned char *key, size_t length) { - JSON *tthis = reinterpret_cast(ctx); - std::string safe_key; - - /** - * yajl does not provide us with null-terminated strings, but - * rather expects us to copy the data from the key up to the - * length informed; we create a standalone null-termined copy - * in safe_key - */ - safe_key.assign((const char *)key, length); - - tthis->m_current_key = safe_key; - - return 1; +JsonSinkStatus JSON::on_key(std::string_view value) { + m_current_key.assign(value.data(), value.size()); + return JsonSinkStatus::Continue; } -/** - * Callback for null values - * - */ -int JSON::yajl_null(void *ctx) { - JSON *tthis = reinterpret_cast(ctx); - return tthis->addArgument(""); +JsonSinkStatus JSON::on_null() { + return addArgument("") != 0 ? JsonSinkStatus::Continue + : JsonSinkStatus::EngineAbort; } -/** - * Callback for boolean values - */ -int JSON::yajl_boolean(void *ctx, int value) { - JSON *tthis = reinterpret_cast(ctx); +JsonSinkStatus JSON::on_boolean(bool value) { if (value) { - return tthis->addArgument("true"); + return addArgument("true") != 0 ? JsonSinkStatus::Continue + : JsonSinkStatus::EngineAbort; } - return tthis->addArgument("false"); + return addArgument("false") != 0 ? JsonSinkStatus::Continue + : JsonSinkStatus::EngineAbort; } -/** - * Callback for string values - */ -int JSON::yajl_string(void *ctx, const unsigned char *value, size_t length) { - JSON *tthis = reinterpret_cast(ctx); - std::string v = std::string((const char*)value, length); - return tthis->addArgument(v); +JsonSinkStatus JSON::on_string(std::string_view value) { + return addArgument(std::string(value.data(), value.size())) != 0 + ? JsonSinkStatus::Continue : JsonSinkStatus::EngineAbort; } -/** - * Callback for numbers; YAJL can use separate callbacks for integers/longs and - * float/double values, but since we are not interested in using the numeric - * values here, we use a generic handler which uses numeric strings - */ -int JSON::yajl_number(void *ctx, const char *value, size_t length) { - JSON *tthis = reinterpret_cast(ctx); - std::string v = std::string((const char*)value, length); - return tthis->addArgument(v); +JsonSinkStatus JSON::on_number(std::string_view value) { + return addArgument(std::string(value.data(), value.size())) != 0 + ? JsonSinkStatus::Continue : JsonSinkStatus::EngineAbort; } -/** - * Callback for a new hash, which indicates a new subtree, labeled as the - * current argument name, is being created - */ -int JSON::yajl_start_array(void *ctx) { - JSON *tthis = reinterpret_cast(ctx); - std::string name = tthis->getCurrentKey(); - tthis->m_containers.push_back( +JsonSinkStatus JSON::on_start_array() { + std::string name = getCurrentKey(); + m_containers.push_back( reinterpret_cast(new JSONContainerArray(name))); - tthis->m_current_depth++; - if (tthis->m_current_depth > tthis->m_max_depth) { - tthis->m_depth_limit_exceeded = true; - return 0; + m_current_depth++; + if (m_current_depth > m_max_depth) { + m_depth_limit_exceeded = true; + return JsonSinkStatus::DepthLimitExceeded; } - return 1; + return JsonSinkStatus::Continue; } -int JSON::yajl_end_array(void *ctx) { - JSON *tthis = reinterpret_cast(ctx); - if (tthis->m_containers.empty()) { - tthis->m_current_depth--; - return 1; +JsonSinkStatus JSON::on_end_array() { + if (m_containers.empty()) { + return JsonSinkStatus::InternalError; } - JSONContainer *a = tthis->m_containers.back(); - tthis->m_containers.pop_back(); + JSONContainer *a = m_containers.back(); + m_containers.pop_back(); delete a; - if (tthis->m_containers.size() > 0) { + if (m_containers.size() > 0) { JSONContainerArray *ja = dynamic_cast( - tthis->m_containers.back()); + m_containers.back()); if (ja) { ja->m_elementCounter++; } } - tthis->m_current_depth--; + m_current_depth--; + if (m_current_depth < 0) { + m_current_depth = 0; + return JsonSinkStatus::InternalError; + } - return 1; + return JsonSinkStatus::Continue; } -int JSON::yajl_start_map(void *ctx) { - JSON *tthis = reinterpret_cast(ctx); - std::string name(tthis->getCurrentKey()); - tthis->m_containers.push_back( +JsonSinkStatus JSON::on_start_object() { + std::string name(getCurrentKey()); + m_containers.push_back( reinterpret_cast(new JSONContainerMap(name))); - tthis->m_current_depth++; - if (tthis->m_current_depth > tthis->m_max_depth) { - tthis->m_depth_limit_exceeded = true; - return 0; + m_current_depth++; + if (m_current_depth > m_max_depth) { + m_depth_limit_exceeded = true; + return JsonSinkStatus::DepthLimitExceeded; } - return 1; + return JsonSinkStatus::Continue; } -/** - * Callback for end hash, meaning the current subtree is being closed, and that - * we should go back to the parent variable label - */ -int JSON::yajl_end_map(void *ctx) { - JSON *tthis = reinterpret_cast(ctx); - if (tthis->m_containers.empty()) { - tthis->m_current_depth--; - return 1; +JsonSinkStatus JSON::on_end_object() { + if (m_containers.empty()) { + return JsonSinkStatus::InternalError; } - JSONContainer *a = tthis->m_containers.back(); - tthis->m_containers.pop_back(); + JSONContainer *a = m_containers.back(); + m_containers.pop_back(); delete a; - if (tthis->m_containers.size() > 0) { + if (m_containers.size() > 0) { JSONContainerArray *ja = dynamic_cast( - tthis->m_containers.back()); + m_containers.back()); if (ja) { ja->m_elementCounter++; } } - tthis->m_current_depth--; - return 1; + m_current_depth--; + if (m_current_depth < 0) { + m_current_depth = 0; + return JsonSinkStatus::InternalError; + } + return JsonSinkStatus::Continue; } +void JSON::clearContainers() { + while (m_containers.size() > 0) { + JSONContainer *a = m_containers.back(); + m_containers.pop_back(); + delete a; + } +} } // namespace RequestBodyProcessor } // namespace modsecurity - - -#endif // WITH_YAJL - diff --git a/src/request_body_processor/json.h b/src/request_body_processor/json.h index 961ea94ea8..49fc109de4 100644 --- a/src/request_body_processor/json.h +++ b/src/request_body_processor/json.h @@ -16,17 +16,12 @@ #ifndef SRC_REQUEST_BODY_PROCESSOR_JSON_H_ #define SRC_REQUEST_BODY_PROCESSOR_JSON_H_ - -#ifdef WITH_YAJL - -#include - -#include -#include #include +#include #include "modsecurity/transaction.h" #include "modsecurity/rules_set.h" +#include "src/request_body_processor/json_backend.h" namespace modsecurity { @@ -55,28 +50,26 @@ class JSONContainerMap : public JSONContainer { }; -class JSON { +class JSON : public JsonEventSink { public: explicit JSON(Transaction *transaction); ~JSON(); - static bool init(); + bool init(); bool processChunk(const char *buf, unsigned int size, std::string *err); bool complete(std::string *err); int addArgument(const std::string& value); - static int yajl_number(void *ctx, const char *value, size_t length); - static int yajl_string(void *ctx, const unsigned char *value, - size_t length); - static int yajl_boolean(void *ctx, int value); - static int yajl_null(void *ctx); - static int yajl_map_key(void *ctx, const unsigned char *key, - size_t length); - static int yajl_end_map(void *ctx); - static int yajl_start_map(void *ctx); - static int yajl_start_array(void *ctx); - static int yajl_end_array(void *ctx); + JsonSinkStatus on_start_object() override; + JsonSinkStatus on_end_object() override; + JsonSinkStatus on_start_array() override; + JsonSinkStatus on_end_array() override; + JsonSinkStatus on_key(std::string_view value) override; + JsonSinkStatus on_string(std::string_view value) override; + JsonSinkStatus on_number(std::string_view value) override; + JsonSinkStatus on_boolean(bool value) override; + JsonSinkStatus on_null() override; bool isPreviousArray() const { const JSONContainerArray *prev = NULL; @@ -108,11 +101,12 @@ class JSON { } private: + void clearContainers(); + std::deque m_containers; Transaction *m_transaction; - yajl_handle m_handle; - yajl_status m_status; std::string m_current_key; + std::string m_data; double m_max_depth; int64_t m_current_depth; bool m_depth_limit_exceeded; @@ -122,7 +116,4 @@ class JSON { } // namespace RequestBodyProcessor } // namespace modsecurity -#endif // WITH_YAJL - #endif // SRC_REQUEST_BODY_PROCESSOR_JSON_H_ - diff --git a/src/request_body_processor/json_adapter.cc b/src/request_body_processor/json_adapter.cc new file mode 100644 index 0000000000..e777a76542 --- /dev/null +++ b/src/request_body_processor/json_adapter.cc @@ -0,0 +1,82 @@ +/* + * ModSecurity, http://www.modsecurity.org/ + * Copyright (c) 2015 - 2024 Trustwave Holdings, Inc. (http://www.trustwave.com/) + * + * You may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * If any of the files related to licensing are missing or if you have any + * other questions related to licensing please contact Trustwave Holdings, Inc. + * directly using the email address security@modsecurity.org. + * + */ + +#include "src/request_body_processor/json_adapter.h" + +#include + +#include "src/config.h" + +namespace modsecurity { +namespace RequestBodyProcessor { +namespace { + +JsonParseResult makeResult(JsonParseStatus parse_status, + JsonSinkStatus sink_status = JsonSinkStatus::Continue, + std::string detail = "") { + return JsonParseResult{parse_status, sink_status, std::move(detail)}; +} + +JsonParseResult normalizeResult(JsonParseResult result) { + if (result.parse_status != JsonParseStatus::Ok) { + return result; + } + + switch (result.sink_status) { + case JsonSinkStatus::Continue: + return result; + case JsonSinkStatus::EngineAbort: + result.parse_status = JsonParseStatus::EngineAbort; + return result; + case JsonSinkStatus::DepthLimitExceeded: + result.parse_status = JsonParseStatus::ParseError; + return result; + case JsonSinkStatus::InternalError: + result.parse_status = JsonParseStatus::InternalError; + return result; + } + + result.parse_status = JsonParseStatus::InternalError; + result.sink_status = JsonSinkStatus::InternalError; + result.detail.assign("Unknown JSON sink status."); + return result; +} + +} // namespace + +JsonParseResult JSONAdapter::parse(const std::string &input, + JsonEventSink *sink, const JsonBackendParseOptions &options) const { + if (sink == nullptr) { + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::InternalError, "JSON event sink is null."); + } + + if (input.empty()) { + return makeResult(JsonParseStatus::Ok); + } + +#if defined(MSC_JSON_BACKEND_SIMDJSON) + return normalizeResult(parseDocumentWithSimdjson(input, sink, options)); +#elif defined(MSC_JSON_BACKEND_JSONCONS) + return normalizeResult(parseDocumentWithJsoncons(input, sink, options)); +#else + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::InternalError, + "ModSecurity was built without a selected JSON backend."); +#endif +} + +} // namespace RequestBodyProcessor +} // namespace modsecurity diff --git a/src/request_body_processor/json_adapter.h b/src/request_body_processor/json_adapter.h new file mode 100644 index 0000000000..730d9af7d2 --- /dev/null +++ b/src/request_body_processor/json_adapter.h @@ -0,0 +1,35 @@ +/* + * ModSecurity, http://www.modsecurity.org/ + * Copyright (c) 2015 - 2024 Trustwave Holdings, Inc. (http://www.trustwave.com/) + * + * You may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * If any of the files related to licensing are missing or if you have any + * other questions related to licensing please contact Trustwave Holdings, Inc. + * directly using the email address security@modsecurity.org. + * + */ + +#ifndef SRC_REQUEST_BODY_PROCESSOR_JSON_ADAPTER_H_ +#define SRC_REQUEST_BODY_PROCESSOR_JSON_ADAPTER_H_ + +#include + +#include "src/request_body_processor/json_backend.h" + +namespace modsecurity { +namespace RequestBodyProcessor { + +class JSONAdapter { + public: + JsonParseResult parse(const std::string &input, JsonEventSink *sink, + const JsonBackendParseOptions &options = JsonBackendParseOptions()) const; +}; + +} // namespace RequestBodyProcessor +} // namespace modsecurity + +#endif // SRC_REQUEST_BODY_PROCESSOR_JSON_ADAPTER_H_ diff --git a/src/request_body_processor/json_backend.h b/src/request_body_processor/json_backend.h new file mode 100644 index 0000000000..30407d5494 --- /dev/null +++ b/src/request_body_processor/json_backend.h @@ -0,0 +1,80 @@ +/* + * ModSecurity, http://www.modsecurity.org/ + * Copyright (c) 2015 - 2024 Trustwave Holdings, Inc. (http://www.trustwave.com/) + * + * You may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * If any of the files related to licensing are missing or if you have any + * other questions related to licensing please contact Trustwave Holdings, Inc. + * directly using the email address security@modsecurity.org. + * + */ + +#ifndef SRC_REQUEST_BODY_PROCESSOR_JSON_BACKEND_H_ +#define SRC_REQUEST_BODY_PROCESSOR_JSON_BACKEND_H_ + +#include +#include + +namespace modsecurity { +namespace RequestBodyProcessor { + +enum class JsonParseStatus { + Ok, + ParseError, + TruncatedInput, + Utf8Error, + EngineAbort, + InternalError +}; + +enum class JsonSinkStatus { + Continue, + EngineAbort, + DepthLimitExceeded, + InternalError +}; + +struct JsonParseResult { + JsonParseStatus parse_status{JsonParseStatus::Ok}; + JsonSinkStatus sink_status{JsonSinkStatus::Continue}; + std::string detail; + + bool ok() const { + return parse_status == JsonParseStatus::Ok + && sink_status == JsonSinkStatus::Continue; + } +}; + +struct JsonBackendParseOptions { + int technical_max_depth{1048576}; +}; + +class JsonEventSink { + public: + virtual ~JsonEventSink() = default; + + virtual JsonSinkStatus on_start_object() = 0; + virtual JsonSinkStatus on_end_object() = 0; + virtual JsonSinkStatus on_start_array() = 0; + virtual JsonSinkStatus on_end_array() = 0; + virtual JsonSinkStatus on_key(std::string_view value) = 0; + virtual JsonSinkStatus on_string(std::string_view value) = 0; + virtual JsonSinkStatus on_number(std::string_view raw_number) = 0; + virtual JsonSinkStatus on_boolean(bool value) = 0; + virtual JsonSinkStatus on_null() = 0; +}; + +JsonParseResult parseDocumentWithSimdjson(const std::string &input, + JsonEventSink *sink, const JsonBackendParseOptions &options); + +JsonParseResult parseDocumentWithJsoncons(const std::string &input, + JsonEventSink *sink, const JsonBackendParseOptions &options); + +} // namespace RequestBodyProcessor +} // namespace modsecurity + +#endif // SRC_REQUEST_BODY_PROCESSOR_JSON_BACKEND_H_ diff --git a/src/request_body_processor/json_backend_jsoncons.cc b/src/request_body_processor/json_backend_jsoncons.cc new file mode 100644 index 0000000000..b8873e9036 --- /dev/null +++ b/src/request_body_processor/json_backend_jsoncons.cc @@ -0,0 +1,610 @@ +/* + * ModSecurity, http://www.modsecurity.org/ + * Copyright (c) 2015 - 2024 Trustwave Holdings, Inc. (http://www.trustwave.com/) + * + * You may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * If any of the files related to licensing are missing or if you have any + * other questions related to licensing please contact Trustwave Holdings, Inc. + * directly using the email address security@modsecurity.org. + * + */ + +#include "src/request_body_processor/json_backend.h" + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +namespace modsecurity { +namespace RequestBodyProcessor { +namespace { + +JsonParseResult makeResult(JsonParseStatus parse_status, + JsonSinkStatus sink_status = JsonSinkStatus::Continue, + std::string detail = "") { + return JsonParseResult{parse_status, sink_status, std::move(detail)}; +} + +JsonParseResult makeResult(JsonParseStatus parse_status, std::string detail) { + return makeResult(parse_status, JsonSinkStatus::Continue, std::move(detail)); +} + +JsonParseResult stopTraversal(JsonSinkStatus sink_status, + std::string_view location) { + return makeResult(JsonParseStatus::Ok, sink_status, + std::string("JSON traversal stopped while ") + std::string(location) + + "."); +} + +bool isUtf8RelatedError(const std::error_code &error) { + switch (static_cast(error.value())) { + case jsoncons::json_errc::illegal_character_in_string: + case jsoncons::json_errc::illegal_control_character: + case jsoncons::json_errc::illegal_escaped_character: + case jsoncons::json_errc::expected_codepoint_surrogate_pair: + case jsoncons::json_errc::invalid_hex_escape_sequence: + case jsoncons::json_errc::invalid_unicode_escape_sequence: + case jsoncons::json_errc::expected_continuation_byte: + case jsoncons::json_errc::over_long_utf8_sequence: + case jsoncons::json_errc::illegal_codepoint: + case jsoncons::json_errc::illegal_surrogate_value: + case jsoncons::json_errc::unpaired_high_surrogate: + case jsoncons::json_errc::illegal_unicode_character: + return true; + default: + return false; + } +} + +JsonParseResult fromJsonconsError(const std::error_code &error, + const jsoncons::ser_context &context) { + std::string detail = error.message() + " at line " + + std::to_string(context.line()) + ", column " + + std::to_string(context.column()) + "."; + + switch (static_cast(error.value())) { + case jsoncons::json_errc::unexpected_eof: + return makeResult(JsonParseStatus::TruncatedInput, + JsonSinkStatus::Continue, detail); + case jsoncons::json_errc::max_nesting_depth_exceeded: + case jsoncons::json_errc::source_error: + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::Continue, detail); + default: + if (isUtf8RelatedError(error)) { + return makeResult(JsonParseStatus::Utf8Error, + JsonSinkStatus::Continue, detail); + } + return makeResult(JsonParseStatus::ParseError, + JsonSinkStatus::Continue, detail); + } +} + +bool isDigit(char value) { + return std::isdigit(static_cast(value)) != 0; +} + +bool isValidJsonNumber(std::string_view token) { + std::size_t index = 0; + + if (token.empty()) { + return false; + } + + if (token[index] == '-') { + index++; + if (index == token.size()) { + return false; + } + } + + if (token[index] == '0') { + index++; + } else { + if (!isDigit(token[index]) || token[index] == '0') { + return false; + } + while (index < token.size() && isDigit(token[index])) { + index++; + } + } + + if (index < token.size() && token[index] == '.') { + index++; + if (index == token.size() || !isDigit(token[index])) { + return false; + } + while (index < token.size() && isDigit(token[index])) { + index++; + } + } + + if (index < token.size() && (token[index] == 'e' || token[index] == 'E')) { + index++; + if (index < token.size() && (token[index] == '+' || token[index] == '-')) { + index++; + } + if (index == token.size() || !isDigit(token[index])) { + return false; + } + while (index < token.size() && isDigit(token[index])) { + index++; + } + } + + return index == token.size(); +} + +bool tokenMatchesNumericEvent(jsoncons::staj_event_type event_type, + std::string_view token) { + if (!isValidJsonNumber(token)) { + return false; + } + + if (event_type == jsoncons::staj_event_type::int64_value + || event_type == jsoncons::staj_event_type::uint64_value) { + return token.find_first_of(".eE") == std::string_view::npos; + } + + return true; +} + +bool isNumericEventType(jsoncons::staj_event_type event_type) { + switch (event_type) { + case jsoncons::staj_event_type::int64_value: + case jsoncons::staj_event_type::uint64_value: + case jsoncons::staj_event_type::double_value: + case jsoncons::staj_event_type::half_value: + return true; + default: + return false; + } +} + +bool isNumericStringEvent(const jsoncons::staj_event &event) { + return event.event_type() == jsoncons::staj_event_type::string_value + && (event.tag() == jsoncons::semantic_tag::bigint + || event.tag() == jsoncons::semantic_tag::bigdec); +} + +class RawJsonTokenCursor { + public: + explicit RawJsonTokenCursor(const std::string &input) + : m_input(input) { } + + bool consume(const jsoncons::staj_event &event, std::string_view *raw_token, + std::string *detail) { + skipInsignificant(); + + if (isNumericEventType(event.event_type()) || isNumericStringEvent(event)) { + return consumeNumber(raw_token, detail); + } + + switch (event.event_type()) { + case jsoncons::staj_event_type::begin_object: + return consumeChar('{', raw_token, detail); + case jsoncons::staj_event_type::end_object: + return consumeChar('}', raw_token, detail); + case jsoncons::staj_event_type::begin_array: + return consumeChar('[', raw_token, detail); + case jsoncons::staj_event_type::end_array: + return consumeChar(']', raw_token, detail); + case jsoncons::staj_event_type::key: + case jsoncons::staj_event_type::string_value: + return consumeString(raw_token, detail); + case jsoncons::staj_event_type::null_value: + return consumeLiteral("null", raw_token, detail); + case jsoncons::staj_event_type::bool_value: { + std::error_code error; + const bool value = event.get(error); + if (error) { + if (detail != nullptr) { + *detail = std::string("Unable to decode boolean event while synchronizing raw token cursor: ") + + error.message(); + } + return false; + } + return consumeLiteral(value ? "true" : "false", raw_token, detail); + } + case jsoncons::staj_event_type::byte_string_value: + if (detail != nullptr) { + *detail = "Unsupported byte-string event encountered in jsoncons backend."; + } + return false; + } + + if (detail != nullptr) { + *detail = "Unsupported STAJ event encountered while synchronizing raw JSON tokens."; + } + return false; + } + + private: + static bool isWhitespace(char value) { + return std::isspace(static_cast(value)) != 0; + } + + static bool isHexDigit(char value) { + return std::isxdigit(static_cast(value)) != 0; + } + + void skipInsignificant() { + while (m_offset < m_input.size()) { + char current = m_input[m_offset]; + if (isWhitespace(current) || current == ',' || current == ':') { + m_offset++; + continue; + } + break; + } + } + + bool consumeChar(char expected, std::string_view *raw_token, + std::string *detail) { + if (m_offset >= m_input.size() || m_input[m_offset] != expected) { + if (detail != nullptr) { + *detail = std::string("Expected raw JSON token '") + expected + + "' while synchronizing jsoncons events."; + } + return false; + } + + *raw_token = std::string_view(m_input.data() + m_offset, 1); + m_offset++; + return true; + } + + bool consumeLiteral(const char *literal, std::string_view *raw_token, + std::string *detail) { + const std::size_t length = std::char_traits::length(literal); + if (m_offset + length > m_input.size() + || m_input.compare(m_offset, length, literal) != 0) { + if (detail != nullptr) { + *detail = std::string("Expected raw JSON literal '") + literal + + "' while synchronizing jsoncons events."; + } + return false; + } + + *raw_token = std::string_view(m_input.data() + m_offset, length); + m_offset += length; + return true; + } + + bool consumeString(std::string_view *raw_token, std::string *detail) { + const std::size_t start = m_offset; + + if (m_offset >= m_input.size() || m_input[m_offset] != '"') { + if (detail != nullptr) { + *detail = "Expected raw JSON string token while synchronizing jsoncons events."; + } + return false; + } + + m_offset++; + while (m_offset < m_input.size()) { + char current = m_input[m_offset++]; + if (current == '\\') { + if (m_offset >= m_input.size()) { + if (detail != nullptr) { + *detail = "Truncated escape sequence while synchronizing raw JSON string token."; + } + return false; + } + + char escaped = m_input[m_offset++]; + if (escaped == 'u') { + for (int i = 0; i < 4; i++) { + if (m_offset >= m_input.size() + || !isHexDigit(m_input[m_offset])) { + if (detail != nullptr) { + *detail = "Invalid Unicode escape while synchronizing raw JSON string token."; + } + return false; + } + m_offset++; + } + } + continue; + } + + if (current == '"') { + *raw_token = std::string_view(m_input.data() + start, + m_offset - start); + return true; + } + + if (static_cast(current) < 0x20) { + if (detail != nullptr) { + *detail = "Unexpected control character while synchronizing raw JSON string token."; + } + return false; + } + } + + if (detail != nullptr) { + *detail = "Unterminated string token while synchronizing jsoncons events."; + } + return false; + } + + bool consumeNumber(std::string_view *raw_token, std::string *detail) { + const std::size_t start = m_offset; + + if (m_offset < m_input.size() && m_input[m_offset] == '-') { + m_offset++; + } + + if (m_offset >= m_input.size()) { + if (detail != nullptr) { + *detail = "Unexpected end of input while synchronizing raw JSON number token."; + } + return false; + } + + if (m_input[m_offset] == '0') { + m_offset++; + } else { + if (!isDigit(m_input[m_offset]) || m_input[m_offset] == '0') { + if (detail != nullptr) { + *detail = "Invalid integer component while synchronizing raw JSON number token."; + } + return false; + } + while (m_offset < m_input.size() && isDigit(m_input[m_offset])) { + m_offset++; + } + } + + if (m_offset < m_input.size() && m_input[m_offset] == '.') { + m_offset++; + if (m_offset >= m_input.size() || !isDigit(m_input[m_offset])) { + if (detail != nullptr) { + *detail = "Invalid fraction component while synchronizing raw JSON number token."; + } + return false; + } + while (m_offset < m_input.size() && isDigit(m_input[m_offset])) { + m_offset++; + } + } + + if (m_offset < m_input.size() + && (m_input[m_offset] == 'e' || m_input[m_offset] == 'E')) { + m_offset++; + if (m_offset < m_input.size() + && (m_input[m_offset] == '+' || m_input[m_offset] == '-')) { + m_offset++; + } + if (m_offset >= m_input.size() || !isDigit(m_input[m_offset])) { + if (detail != nullptr) { + *detail = "Invalid exponent component while synchronizing raw JSON number token."; + } + return false; + } + while (m_offset < m_input.size() && isDigit(m_input[m_offset])) { + m_offset++; + } + } + + *raw_token = std::string_view(m_input.data() + start, m_offset - start); + return true; + } + + const std::string &m_input; + std::size_t m_offset{0}; +}; + +std::string rawNumberFromContext(const std::string &input, + jsoncons::staj_event_type event_type, const jsoncons::ser_context &context, + const jsoncons::staj_event &event, std::string_view scanned_token) { + const std::size_t begin = context.begin_position(); + const std::size_t end = context.end_position(); + + if (begin < end && end <= input.size()) { + std::string_view candidate(input.data() + begin, end - begin); + if (tokenMatchesNumericEvent(event_type, candidate)) { + return std::string(candidate); + } + } + + if (tokenMatchesNumericEvent(event_type, scanned_token)) { + return std::string(scanned_token); + } + + if (isNumericStringEvent(event)) { + std::error_code error; + jsoncons::string_view decoded = event.get(error); + if (error) { + return ""; + } + if (isValidJsonNumber(std::string_view(decoded.data(), decoded.size()))) { + return std::string(decoded.data(), decoded.size()); + } + return ""; + } + + std::error_code error; + std::string fallback = event.get(error); + if (error) { + return ""; + } + + return fallback; +} + +JsonParseResult emitEvent(const std::string &input, JsonEventSink *sink, + RawJsonTokenCursor *token_cursor, const jsoncons::staj_event &event, + const jsoncons::ser_context &context) { + JsonSinkStatus sink_status = JsonSinkStatus::Continue; + std::error_code error; + std::string_view raw_token; + std::string sync_detail; + + if (!token_cursor->consume(event, &raw_token, &sync_detail)) { + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::Continue, sync_detail); + } + + switch (event.event_type()) { + case jsoncons::staj_event_type::begin_object: + sink_status = sink->on_start_object(); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "starting an object"); + } + return makeResult(JsonParseStatus::Ok); + case jsoncons::staj_event_type::end_object: + sink_status = sink->on_end_object(); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "ending an object"); + } + return makeResult(JsonParseStatus::Ok); + case jsoncons::staj_event_type::begin_array: + sink_status = sink->on_start_array(); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "starting an array"); + } + return makeResult(JsonParseStatus::Ok); + case jsoncons::staj_event_type::end_array: + sink_status = sink->on_end_array(); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "ending an array"); + } + return makeResult(JsonParseStatus::Ok); + case jsoncons::staj_event_type::key: { + jsoncons::string_view decoded = event.get(error); + if (error) { + return fromJsonconsError(error, context); + } + sink_status = sink->on_key(std::string_view(decoded.data(), + decoded.size())); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "processing an object key"); + } + return makeResult(JsonParseStatus::Ok); + } + case jsoncons::staj_event_type::string_value: { + jsoncons::string_view decoded = event.get(error); + if (error) { + return fromJsonconsError(error, context); + } + if (isNumericStringEvent(event)) { + std::string raw_number = rawNumberFromContext(input, + jsoncons::staj_event_type::double_value, context, event, + raw_token); + if (raw_number.empty()) { + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::Continue, + "Unable to materialize numeric JSON token from jsoncons backend."); + } + sink_status = sink->on_number(raw_number); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a number"); + } + return makeResult(JsonParseStatus::Ok); + } + sink_status = sink->on_string(std::string_view(decoded.data(), + decoded.size())); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a string"); + } + return makeResult(JsonParseStatus::Ok); + } + case jsoncons::staj_event_type::null_value: + sink_status = sink->on_null(); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a null value"); + } + return makeResult(JsonParseStatus::Ok); + case jsoncons::staj_event_type::bool_value: + { + bool boolean_value = event.get(error); + if (error) { + return fromJsonconsError(error, context); + } + sink_status = sink->on_boolean(boolean_value); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a boolean"); + } + return makeResult(JsonParseStatus::Ok); + } + case jsoncons::staj_event_type::int64_value: + case jsoncons::staj_event_type::uint64_value: + case jsoncons::staj_event_type::double_value: + case jsoncons::staj_event_type::half_value: { + std::string raw_number = rawNumberFromContext(input, + event.event_type(), context, event, raw_token); + if (raw_number.empty()) { + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::Continue, + "Unable to materialize numeric JSON token from jsoncons backend."); + } + sink_status = sink->on_number(raw_number); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a number"); + } + return makeResult(JsonParseStatus::Ok); + } + default: + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::Continue, + "Unsupported JSON token type encountered in jsoncons backend."); + } +} + +} // namespace + +JsonParseResult parseDocumentWithJsoncons(const std::string &input, + JsonEventSink *sink, const JsonBackendParseOptions &options) { + if (sink == nullptr) { + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::InternalError, "JSON event sink is null."); + } + + jsoncons::json_options cursor_options; + cursor_options.max_nesting_depth(options.technical_max_depth); + cursor_options.lossless_number(true); + cursor_options.lossless_bignum(true); + + std::error_code error; + jsoncons::json_string_cursor cursor(input, cursor_options, error); + if (error) { + return fromJsonconsError(error, cursor.context()); + } + + RawJsonTokenCursor token_cursor(input); + + while (!cursor.done()) { + JsonParseResult result = emitEvent(input, sink, &token_cursor, + cursor.current(), cursor.context()); + if (!result.ok()) { + return result; + } + + cursor.next(error); + if (error) { + return fromJsonconsError(error, cursor.context()); + } + } + + cursor.check_done(error); + if (error) { + return fromJsonconsError(error, cursor.context()); + } + + return makeResult(JsonParseStatus::Ok); +} + +} // namespace RequestBodyProcessor +} // namespace modsecurity diff --git a/src/request_body_processor/json_backend_simdjson.cc b/src/request_body_processor/json_backend_simdjson.cc new file mode 100644 index 0000000000..12fba0d0a0 --- /dev/null +++ b/src/request_body_processor/json_backend_simdjson.cc @@ -0,0 +1,377 @@ +/* + * ModSecurity, http://www.modsecurity.org/ + * Copyright (c) 2015 - 2024 Trustwave Holdings, Inc. (http://www.trustwave.com/) + * + * You may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * If any of the files related to licensing are missing or if you have any + * other questions related to licensing please contact Trustwave Holdings, Inc. + * directly using the email address security@modsecurity.org. + * + */ + +#include "src/request_body_processor/json_backend.h" + +#include +#include + +#include "simdjson.h" + +namespace modsecurity { +namespace RequestBodyProcessor { +namespace { + +JsonParseResult makeResult(JsonParseStatus parse_status, + JsonSinkStatus sink_status = JsonSinkStatus::Continue, + std::string detail = "") { + return JsonParseResult{parse_status, sink_status, std::move(detail)}; +} + +JsonParseResult makeResult(JsonParseStatus parse_status, std::string detail) { + return makeResult(parse_status, JsonSinkStatus::Continue, std::move(detail)); +} + +JsonParseResult stopTraversal(JsonSinkStatus sink_status, + std::string_view location) { + return makeResult(JsonParseStatus::Ok, sink_status, + std::string("JSON traversal stopped while ") + std::string(location) + + "."); +} + +JsonParseResult fromSimdjsonError(simdjson::error_code error) { + switch (error) { + case simdjson::UTF8_ERROR: + return makeResult(JsonParseStatus::Utf8Error, + std::string("Invalid UTF-8 in JSON body: ") + + simdjson::error_message(error)); + case simdjson::EMPTY: + case simdjson::UNCLOSED_STRING: + case simdjson::INCOMPLETE_ARRAY_OR_OBJECT: + case simdjson::INSUFFICIENT_PADDING: + return makeResult(JsonParseStatus::TruncatedInput, + std::string("Incomplete JSON body: ") + + simdjson::error_message(error)); + case simdjson::DEPTH_ERROR: + case simdjson::TAPE_ERROR: + case simdjson::STRING_ERROR: + case simdjson::T_ATOM_ERROR: + case simdjson::F_ATOM_ERROR: + case simdjson::N_ATOM_ERROR: + case simdjson::NUMBER_ERROR: + case simdjson::BIGINT_ERROR: + case simdjson::UNESCAPED_CHARS: + case simdjson::TRAILING_CONTENT: + return makeResult(JsonParseStatus::ParseError, + std::string("Invalid JSON body: ") + + simdjson::error_message(error)); + case simdjson::CAPACITY: + case simdjson::OUT_OF_CAPACITY: + case simdjson::MEMALLOC: + return makeResult(JsonParseStatus::InternalError, + std::string("JSON parser backend failure: ") + + simdjson::error_message(error)); + default: + return makeResult(JsonParseStatus::InternalError, + std::string("JSON backend failed: ") + + simdjson::error_message(error)); + } +} + +template +JsonParseResult getResult(ResultType &&result, TargetType *target) { + if (auto error = std::forward(result).get(*target); error) { + return fromSimdjsonError(error); + } + + return makeResult(JsonParseStatus::Ok); +} + +class JsonBackendWalker { + public: + explicit JsonBackendWalker(JsonEventSink *sink) : m_sink(sink) { } + + JsonParseResult walk(simdjson::ondemand::document *document) { + bool is_scalar = false; + JsonParseResult result = getResult(document->is_scalar(), &is_scalar); + if (!result.ok()) { + return result; + } + + if (is_scalar) { + return walkDocumentScalar(document); + } + + simdjson::ondemand::value root_value; + result = getResult(document->get_value(), &root_value); + if (!result.ok()) { + return result; + } + + return walkValue(root_value); + } + + private: + JsonParseResult walkDocumentScalar(simdjson::ondemand::document *document) { + simdjson::ondemand::json_type type; + JsonParseResult result = getResult(document->type(), &type); + if (!result.ok()) { + return result; + } + + switch (type) { + case simdjson::ondemand::json_type::string: { + std::string_view decoded; + result = getResult(document->get_string(), &decoded); + if (!result.ok()) { + return result; + } + + JsonSinkStatus sink_status = m_sink->on_string(decoded); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a root string"); + } + return makeResult(JsonParseStatus::Ok); + } + case simdjson::ondemand::json_type::number: { + std::string_view raw_number; + result = getResult(document->raw_json_token(), &raw_number); + if (!result.ok()) { + return result; + } + + JsonSinkStatus sink_status = m_sink->on_number(raw_number); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a root number"); + } + return makeResult(JsonParseStatus::Ok); + } + case simdjson::ondemand::json_type::boolean: { + bool boolean_value = false; + result = getResult(document->get_bool(), &boolean_value); + if (!result.ok()) { + return result; + } + + JsonSinkStatus sink_status = m_sink->on_boolean(boolean_value); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a root boolean"); + } + return makeResult(JsonParseStatus::Ok); + } + case simdjson::ondemand::json_type::null: { + bool is_null = false; + result = getResult(document->is_null(), &is_null); + if (!result.ok()) { + return result; + } + if (!is_null) { + return makeResult(JsonParseStatus::InternalError, + "Root scalar classified as null but failed validation."); + } + + JsonSinkStatus sink_status = m_sink->on_null(); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a root null"); + } + return makeResult(JsonParseStatus::Ok); + } + case simdjson::ondemand::json_type::object: + case simdjson::ondemand::json_type::array: + case simdjson::ondemand::json_type::unknown: + return makeResult(JsonParseStatus::InternalError, + "Unexpected root scalar type encountered in simdjson backend."); + } + + return makeResult(JsonParseStatus::InternalError, + "Unsupported root scalar type encountered in simdjson backend."); + } + + JsonParseResult walkValue(simdjson::ondemand::value value) { + simdjson::ondemand::json_type type; + + JsonParseResult result = getResult(value.type(), &type); + if (!result.ok()) { + return result; + } + + switch (type) { + case simdjson::ondemand::json_type::object: + return walkObject(value); + case simdjson::ondemand::json_type::array: + return walkArray(value); + case simdjson::ondemand::json_type::string: + return walkString(value); + case simdjson::ondemand::json_type::number: + return walkNumber(value); + case simdjson::ondemand::json_type::boolean: + return walkBoolean(value); + case simdjson::ondemand::json_type::null: { + JsonSinkStatus sink_status = m_sink->on_null(); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a null value"); + } + return makeResult(JsonParseStatus::Ok); + } + case simdjson::ondemand::json_type::unknown: + return makeResult(JsonParseStatus::InternalError, + "Unknown JSON token type encountered."); + } + + return makeResult(JsonParseStatus::InternalError, + "Unsupported JSON token type encountered."); + } + + JsonParseResult walkObject(simdjson::ondemand::value value) { + simdjson::ondemand::object object; + JsonParseResult result = getResult(value.get_object(), &object); + if (!result.ok()) { + return result; + } + + JsonSinkStatus sink_status = m_sink->on_start_object(); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "starting an object"); + } + + for (auto field_result : object) { + simdjson::ondemand::field field; + std::string_view key; + simdjson::ondemand::value child; + + result = getResult(std::move(field_result), &field); + if (!result.ok()) { + return result; + } + + result = getResult(field.unescaped_key(), &key); + if (!result.ok()) { + return result; + } + + sink_status = m_sink->on_key(key); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "processing an object key"); + } + + child = field.value(); + + result = walkValue(child); + if (!result.ok()) { + return result; + } + } + + sink_status = m_sink->on_end_object(); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "ending an object"); + } + + return makeResult(JsonParseStatus::Ok); + } + + JsonParseResult walkArray(simdjson::ondemand::value value) { + simdjson::ondemand::array array; + JsonParseResult result = getResult(value.get_array(), &array); + if (!result.ok()) { + return result; + } + + JsonSinkStatus sink_status = m_sink->on_start_array(); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "starting an array"); + } + + for (auto element_result : array) { + simdjson::ondemand::value element; + + result = getResult(std::move(element_result), &element); + if (!result.ok()) { + return result; + } + + result = walkValue(element); + if (!result.ok()) { + return result; + } + } + + sink_status = m_sink->on_end_array(); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "ending an array"); + } + + return makeResult(JsonParseStatus::Ok); + } + + JsonParseResult walkString(simdjson::ondemand::value value) { + std::string_view decoded; + JsonParseResult result = getResult(value.get_string(), &decoded); + if (!result.ok()) { + return result; + } + + JsonSinkStatus sink_status = m_sink->on_string(decoded); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a string"); + } + + return makeResult(JsonParseStatus::Ok); + } + + JsonParseResult walkNumber(simdjson::ondemand::value value) { + std::string_view raw_number = value.raw_json_token(); + JsonSinkStatus sink_status = m_sink->on_number(raw_number); + + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a number"); + } + + return makeResult(JsonParseStatus::Ok); + } + + JsonParseResult walkBoolean(simdjson::ondemand::value value) { + bool boolean_value = false; + JsonParseResult result = getResult(value.get_bool(), &boolean_value); + if (!result.ok()) { + return result; + } + + JsonSinkStatus sink_status = m_sink->on_boolean(boolean_value); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a boolean"); + } + + return makeResult(JsonParseStatus::Ok); + } + + JsonEventSink *m_sink; +}; + +} // namespace + +JsonParseResult parseDocumentWithSimdjson(const std::string &input, + JsonEventSink *sink, const JsonBackendParseOptions &options) { + (void) options; + + if (sink == nullptr) { + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::InternalError, "JSON event sink is null."); + } + + simdjson::ondemand::parser parser; + simdjson::padded_string padded(input); + simdjson::ondemand::document document; + + if (auto error = parser.iterate(padded).get(document); error) { + return fromSimdjsonError(error); + } + + JsonBackendWalker walker(sink); + return walker.walk(&document); +} + +} // namespace RequestBodyProcessor +} // namespace modsecurity diff --git a/src/transaction.cc b/src/transaction.cc index 408f9b3d40..6cefae2efe 100644 --- a/src/transaction.cc +++ b/src/transaction.cc @@ -15,11 +15,6 @@ #include "modsecurity/transaction.h" -#ifdef WITH_YAJL -#include -#include -#endif - #include #include @@ -36,16 +31,15 @@ #include "src/actions/disruptive/deny.h" #include "modsecurity/intervention.h" #include "modsecurity/modsecurity.h" +#include "src/request_body_processor/json.h" #include "src/request_body_processor/multipart.h" #include "src/request_body_processor/xml.h" -#ifdef WITH_YAJL -#include "src/request_body_processor/json.h" -#endif #include "modsecurity/audit_log.h" #include "src/unique_id.h" #include "src/utils/string.h" #include "src/utils/system.h" #include "src/utils/decode.h" +#include "src/utils/json_writer.h" #include "src/utils/random.h" #include "modsecurity/rule.h" #include "modsecurity/rule_message.h" @@ -142,11 +136,7 @@ Transaction::Transaction(ModSecurity *ms, RulesSet *rules, const char *id, #else m_xml(nullptr), #endif -#ifdef WITH_YAJL m_json(new RequestBodyProcessor::JSON(this)), -#else - m_json(nullptr), -#endif m_secRuleEngine(RulesSetProperties::PropertyNotSetRuleEngine), m_secXMLParseXmlIntoArgs(rules->m_secXMLParseXmlIntoArgs), m_logCbData(logCbData), @@ -173,9 +163,7 @@ Transaction::~Transaction() { intervention::free(&m_it); intervention::clean(&m_it); -#ifdef WITH_YAJL delete m_json; -#endif #ifdef WITH_LIBXML2 delete m_xml; #endif @@ -709,66 +697,58 @@ int Transaction::processRequestBody() { } } -#ifdef WITH_LIBXML2 - if (m_requestBodyProcessor == XMLRequestBody) { + if (m_requestBodyProcessor == JSONRequestBody) { // large size might cause issues in the parsing itself; omit if exceeded if (!requestBodyNoFilesLimitExceeded) { std::string error; - if (m_xml->init() == true) { - m_xml->processChunk(m_requestBody.str().c_str(), + if (m_rules->m_requestBodyJsonDepthLimit.m_set) { + m_json->setMaxDepth(m_rules->m_requestBodyJsonDepthLimit.m_value); + } + if (m_json->init() == true) { + m_json->processChunk(m_requestBody.str().c_str(), m_requestBody.str().size(), &error); - m_xml->complete(&error); + m_json->complete(&error); } - if (error.empty() == false) { + if (error.empty() == false && m_requestBody.str().size() > 0) { m_variableReqbodyError.set("1", m_variableOffset); - m_variableReqbodyErrorMsg.set("XML parsing error: " + error, + m_variableReqbodyProcessorError.set("1", m_variableOffset); + m_variableReqbodyErrorMsg.set("JSON parsing error: " + error, m_variableOffset); - m_variableReqbodyProcessorErrorMsg.set("XML parsing error: " \ + m_variableReqbodyProcessorErrorMsg.set("JSON parsing error: " \ + error, m_variableOffset); - m_variableReqbodyProcessorError.set("1", m_variableOffset); } else { m_variableReqbodyError.set("0", m_variableOffset); m_variableReqbodyProcessorError.set("0", m_variableOffset); } } -#endif -#if WITH_YAJL + } #ifdef WITH_LIBXML2 - } else if (m_requestBodyProcessor == JSONRequestBody) { -#else - if (m_requestBodyProcessor == JSONRequestBody) { -#endif + else if (m_requestBodyProcessor == XMLRequestBody) { // large size might cause issues in the parsing itself; omit if exceeded if (!requestBodyNoFilesLimitExceeded) { std::string error; - if (m_rules->m_requestBodyJsonDepthLimit.m_set) { - m_json->setMaxDepth(m_rules->m_requestBodyJsonDepthLimit.m_value); - } - if (m_json->init() == true) { - m_json->processChunk(m_requestBody.str().c_str(), + if (m_xml->init() == true) { + m_xml->processChunk(m_requestBody.str().c_str(), m_requestBody.str().size(), &error); - m_json->complete(&error); + m_xml->complete(&error); } - if (error.empty() == false && m_requestBody.str().size() > 0) { + if (error.empty() == false) { m_variableReqbodyError.set("1", m_variableOffset); - m_variableReqbodyProcessorError.set("1", m_variableOffset); - m_variableReqbodyErrorMsg.set("JSON parsing error: " + error, + m_variableReqbodyErrorMsg.set("XML parsing error: " + error, m_variableOffset); - m_variableReqbodyProcessorErrorMsg.set("JSON parsing error: " \ + m_variableReqbodyProcessorErrorMsg.set("XML parsing error: " \ + error, m_variableOffset); + m_variableReqbodyProcessorError.set("1", m_variableOffset); } else { m_variableReqbodyError.set("0", m_variableOffset); m_variableReqbodyProcessorError.set("0", m_variableOffset); } } + } #endif -#if defined(WITH_LIBXML2) or defined(WITH_YAJL) - } else if (m_requestBodyType == MultiPartRequestBody) { -#else - if (m_requestBodyType == MultiPartRequestBody) { -#endif + else if (m_requestBodyType == MultiPartRequestBody) { std::string error; int reqbodyNoFilesLength = 0; if (a != NULL) { @@ -1564,197 +1544,139 @@ std::string Transaction::toOldAuditLogFormat(int parts, std::string Transaction::toJSON(int parts) { -#ifdef WITH_YAJL - const unsigned char *buf; - size_t len; - yajl_gen g; std::string log; std::string ts = utils::string::ascTime(&m_timeStamp); std::string uniqueId = UniqueId::uniqueId(); - - g = yajl_gen_alloc(NULL); - if (g == NULL) { - return ""; - } - yajl_gen_config(g, yajl_gen_beautify, 0); - - /* main */ - yajl_gen_map_open(g); - - /* trasaction */ - yajl_gen_string(g, reinterpret_cast("transaction"), - strlen("transaction")); - - yajl_gen_map_open(g); - /* Part: A (header mandatory) */ - LOGFY_ADD("client_ip", m_clientIpAddress); - LOGFY_ADD("time_stamp", ts); - LOGFY_ADD("server_id", uniqueId); - LOGFY_ADD_NUM("client_port", m_clientPort); - LOGFY_ADD("host_ip", m_serverIpAddress); - LOGFY_ADD_NUM("host_port", m_serverPort); - LOGFY_ADD("unique_id", m_id); - - /* request */ - yajl_gen_string(g, reinterpret_cast("request"), - strlen("request")); - yajl_gen_map_open(g); - - LOGFY_ADD("method", - utils::string::dash_if_empty( - m_variableRequestMethod.evaluate())); - - LOGFY_ADD("http_version", m_httpVersion); - LOGFY_ADD("hostname", m_requestHostName); - LOGFY_ADD("uri", this->m_uri); + utils::JsonWriter writer(false); + + const auto addString = [&writer](std::string_view key, + const std::string &value) { + writer.key(key); + writer.string(value); + }; + const auto addInteger = [&writer](std::string_view key, int64_t value) { + writer.key(key); + writer.integer(value); + }; + + writer.start_object(); + writer.key("transaction"); + writer.start_object(); + + addString("client_ip", m_clientIpAddress); + addString("time_stamp", ts); + addString("server_id", uniqueId); + addInteger("client_port", m_clientPort); + addString("host_ip", m_serverIpAddress); + addInteger("host_port", m_serverPort); + addString("unique_id", m_id); + + writer.key("request"); + writer.start_object(); + addString("method", + utils::string::dash_if_empty(m_variableRequestMethod.evaluate())); + addString("http_version", m_httpVersion); + addString("hostname", m_requestHostName); + addString("uri", this->m_uri); if (parts & audit_log::AuditLog::CAuditLogPart) { - // FIXME: check for the binary content size. - LOGFY_ADD("body", utils::string::toHexIfNeeded(this->m_requestBody.str())); + addString("body", utils::string::toHexIfNeeded(this->m_requestBody.str())); } - /* request headers */ if (parts & audit_log::AuditLog::BAuditLogPart) { std::vector l; - yajl_gen_string(g, reinterpret_cast("headers"), - strlen("headers")); - yajl_gen_map_open(g); + writer.key("headers"); + writer.start_object(); m_variableRequestHeaders.resolve(&l); for (auto &h : l) { - LOGFY_ADD(utils::string::toHexIfNeeded(h->getKey().c_str()).c_str(), utils::string::toHexIfNeeded(h->getValue())); + std::string header_name = + utils::string::toHexIfNeeded(h->getKey().c_str()); + std::string header_value = + utils::string::toHexIfNeeded(h->getValue()); + addString(header_name, header_value); delete h; } - - /* end: request headers */ - yajl_gen_map_close(g); + writer.end_object(); } + writer.end_object(); - /* end: request */ - yajl_gen_map_close(g); - - /* response */ - yajl_gen_string(g, reinterpret_cast("response"), - strlen("response")); - yajl_gen_map_open(g); - + writer.key("response"); + writer.start_object(); if (parts & audit_log::AuditLog::EAuditLogPart) { - LOGFY_ADD("body", this->m_responseBody.str()); + addString("body", this->m_responseBody.str()); } - LOGFY_ADD_NUM("http_code", m_httpCodeReturned); + addInteger("http_code", m_httpCodeReturned); - /* response headers */ if (parts & audit_log::AuditLog::FAuditLogPart) { std::vector l; - yajl_gen_string(g, reinterpret_cast("headers"), - strlen("headers")); - yajl_gen_map_open(g); + writer.key("headers"); + writer.start_object(); m_variableResponseHeaders.resolve(&l); for (auto &h : l) { - LOGFY_ADD(h->getKey().c_str(), h->getValue()); + addString(h->getKey(), h->getValue()); delete h; } - - /* end: response headers */ - yajl_gen_map_close(g); + writer.end_object(); } - /* end: response */ - yajl_gen_map_close(g); + writer.end_object(); - /* producer */ if (parts & audit_log::AuditLog::HAuditLogPart) { - yajl_gen_string(g, reinterpret_cast("producer"), - strlen("producer")); - yajl_gen_map_open(g); - - /* producer > libmodsecurity */ - LOGFY_ADD("modsecurity", m_ms->whoAmI()); - - /* producer > connector */ - LOGFY_ADD("connector", m_ms->getConnectorInformation()); - - /* producer > engine state */ - LOGFY_ADD("secrules_engine", + writer.key("producer"); + writer.start_object(); + addString("modsecurity", m_ms->whoAmI()); + addString("connector", m_ms->getConnectorInformation()); + addString("secrules_engine", RulesSet::ruleEngineStateString( - (RulesSetProperties::RuleEngine) getRuleEngineState())); + (RulesSetProperties::RuleEngine) getRuleEngineState())); - /* producer > components */ - yajl_gen_string(g, - reinterpret_cast("components"), - strlen("components")); - - yajl_gen_array_open(g); + writer.key("components"); + writer.start_array(); for (const auto &a : m_rules->m_components) { - yajl_gen_string(g, - reinterpret_cast - (a.data()), a.length()); + writer.string(a); } - yajl_gen_array_close(g); - - /* end: producer */ - yajl_gen_map_close(g); - - /* messages */ - yajl_gen_string(g, - reinterpret_cast("messages"), - strlen("messages")); - yajl_gen_array_open(g); - for (auto a : m_rulesMessages) { - yajl_gen_map_open(g); - LOGFY_ADD("message", a.m_message); - yajl_gen_string(g, - reinterpret_cast("details"), - strlen("details")); - yajl_gen_map_open(g); - LOGFY_ADD("match", a.m_match); - LOGFY_ADD("reference", a.m_reference); - LOGFY_ADD("ruleId", std::to_string(a.m_rule.m_ruleId)); - LOGFY_ADD("file", a.m_rule.getFileName()); - LOGFY_ADD("lineNumber", std::to_string(a.m_rule.getLineNumber())); - LOGFY_ADD("data", utils::string::toHexIfNeeded(a.m_data)); - LOGFY_ADD("severity", std::to_string(a.m_severity)); - LOGFY_ADD("ver", a.m_rule.m_ver); - LOGFY_ADD("rev", a.m_rule.m_rev); - - yajl_gen_string(g, - reinterpret_cast("tags"), - strlen("tags")); - yajl_gen_array_open(g); - for (auto b : a.m_tags) { - yajl_gen_string(g, - reinterpret_cast(b.data()), - b.length()); + writer.end_array(); + writer.end_object(); + + writer.key("messages"); + writer.start_array(); + for (const auto &a : m_rulesMessages) { + writer.start_object(); + addString("message", a.m_message); + writer.key("details"); + writer.start_object(); + addString("match", a.m_match); + addString("reference", a.m_reference); + addString("ruleId", std::to_string(a.m_rule.m_ruleId)); + addString("file", a.m_rule.getFileName()); + addString("lineNumber", std::to_string(a.m_rule.getLineNumber())); + addString("data", utils::string::toHexIfNeeded(a.m_data)); + addString("severity", std::to_string(a.m_severity)); + addString("ver", a.m_rule.m_ver); + addString("rev", a.m_rule.m_rev); + + writer.key("tags"); + writer.start_array(); + for (const auto &b : a.m_tags) { + writer.string(b); } - yajl_gen_array_close(g); + writer.end_array(); - LOGFY_ADD("maturity", std::to_string(a.m_rule.m_maturity)); - LOGFY_ADD("accuracy", std::to_string(a.m_rule.m_accuracy)); - yajl_gen_map_close(g); - yajl_gen_map_close(g); + addString("maturity", std::to_string(a.m_rule.m_maturity)); + addString("accuracy", std::to_string(a.m_rule.m_accuracy)); + writer.end_object(); + writer.end_object(); } - yajl_gen_array_close(g); - /* end: messages */ + writer.end_array(); } - /* end: transaction */ - yajl_gen_map_close(g); - - /* end: main */ - yajl_gen_map_close(g); + writer.end_object(); + writer.end_object(); - yajl_gen_get_buf(g, &buf, &len); - - log.assign(reinterpret_cast(buf), len); + log = writer.to_string(); log.append("\n"); - - yajl_gen_free(g); - return log; -#else - return std::string("{\"error\":\"ModSecurity was " \ - "not compiled with JSON support.\"}"); -#endif } @@ -2326,4 +2248,3 @@ extern "C" int msc_set_request_hostname(Transaction *transaction, } // namespace modsecurity - diff --git a/src/utils/json_writer.cc b/src/utils/json_writer.cc new file mode 100644 index 0000000000..193daa5af9 --- /dev/null +++ b/src/utils/json_writer.cc @@ -0,0 +1,199 @@ +/* + * ModSecurity, http://www.modsecurity.org/ + * Copyright (c) 2015 - 2024 Trustwave Holdings, Inc. (http://www.trustwave.com/) + * + * You may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * If any of the files related to licensing are missing or if you have any + * other questions related to licensing please contact Trustwave Holdings, Inc. + * directly using the email address security@modsecurity.org. + * + */ + +#include "src/utils/json_writer.h" + +#include +#include + +namespace modsecurity { +namespace utils { + +JsonWriter::JsonWriter(bool pretty, std::string indent) + : m_output(), + m_stack(), + m_pretty(pretty), + m_indent(std::move(indent)) { } + +void JsonWriter::start_object() { + begin_container(ContainerType::Object, '{'); +} + +void JsonWriter::end_object() { + end_container(ContainerType::Object, '}'); +} + +void JsonWriter::start_array() { + begin_container(ContainerType::Array, '['); +} + +void JsonWriter::end_array() { + end_container(ContainerType::Array, ']'); +} + +void JsonWriter::key(std::string_view value) { + Frame &frame = m_stack.back(); + + if (!frame.first) { + m_output.push_back(','); + } + if (m_pretty) { + newline_and_indent(m_stack.size()); + } + + write_escaped_string(value); + m_output.append(m_pretty ? ": " : ":"); + + frame.first = false; + frame.expecting_key = false; +} + +void JsonWriter::string(std::string_view value) { + before_value(); + write_escaped_string(value); +} + +void JsonWriter::number(std::string_view raw) { + before_value(); + m_output.append(raw.data(), raw.size()); +} + +void JsonWriter::integer(int64_t value) { + before_value(); + m_output.append(std::to_string(value)); +} + +void JsonWriter::boolean(bool value) { + before_value(); + m_output.append(value ? "true" : "false"); +} + +void JsonWriter::null() { + before_value(); + m_output.append("null"); +} + +const std::string& JsonWriter::str() const { + return m_output; +} + +std::string JsonWriter::to_string() const { + return m_output; +} + +void JsonWriter::before_value() { + if (m_stack.empty()) { + return; + } + + Frame &frame = m_stack.back(); + if (frame.type == ContainerType::Array) { + if (!frame.first) { + m_output.push_back(','); + } + if (m_pretty) { + newline_and_indent(m_stack.size()); + } + frame.first = false; + return; + } + + frame.expecting_key = true; +} + +void JsonWriter::after_container_end() { + if (m_stack.empty()) { + return; + } + + Frame &frame = m_stack.back(); + if (frame.type == ContainerType::Object) { + frame.expecting_key = true; + } +} + +void JsonWriter::begin_container(ContainerType type, char token) { + before_value(); + m_output.push_back(token); + m_stack.push_back(Frame{ + type, + true, + type == ContainerType::Object + }); +} + +void JsonWriter::end_container(ContainerType expected, char token) { + Frame frame = m_stack.back(); + m_stack.pop_back(); + + if (frame.type == expected && !frame.first && m_pretty) { + newline_and_indent(m_stack.size()); + } + + m_output.push_back(token); + after_container_end(); +} + +void JsonWriter::newline_and_indent(std::size_t depth) { + m_output.push_back('\n'); + for (std::size_t i = 0; i < depth; ++i) { + m_output.append(m_indent); + } +} + +void JsonWriter::write_escaped_string(std::string_view value) { + static const char *kHex = "0123456789abcdef"; + char unicode_escape[] = {'\\', 'u', '0', '0', '0', '0', '\0'}; + + m_output.push_back('"'); + for (const unsigned char c : value) { + switch (c) { + case '"': + m_output.append("\\\""); + break; + case '\\': + m_output.append("\\\\"); + break; + case '\b': + m_output.append("\\b"); + break; + case '\f': + m_output.append("\\f"); + break; + case '\n': + m_output.append("\\n"); + break; + case '\r': + m_output.append("\\r"); + break; + case '\t': + m_output.append("\\t"); + break; + default: + if (c < 0x20) { + unicode_escape[4] = kHex[(c >> 4) & 0x0f]; + unicode_escape[5] = kHex[c & 0x0f]; + m_output.append(unicode_escape, 6); + } else { + m_output.push_back(static_cast(c)); + } + break; + } + } + m_output.push_back('"'); +} + +} // namespace utils +} // namespace modsecurity diff --git a/src/utils/json_writer.h b/src/utils/json_writer.h new file mode 100644 index 0000000000..7f900bd7aa --- /dev/null +++ b/src/utils/json_writer.h @@ -0,0 +1,74 @@ +/* + * ModSecurity, http://www.modsecurity.org/ + * Copyright (c) 2015 - 2024 Trustwave Holdings, Inc. (http://www.trustwave.com/) + * + * You may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * If any of the files related to licensing are missing or if you have any + * other questions related to licensing please contact Trustwave Holdings, Inc. + * directly using the email address security@modsecurity.org. + * + */ + +#ifndef SRC_UTILS_JSON_WRITER_H_ +#define SRC_UTILS_JSON_WRITER_H_ + +#include +#include +#include +#include + +namespace modsecurity { +namespace utils { + +class JsonWriter { + public: + explicit JsonWriter(bool pretty = false, std::string indent = " "); + + void start_object(); + void end_object(); + void start_array(); + void end_array(); + + void key(std::string_view value); + void string(std::string_view value); + void number(std::string_view raw); + void integer(int64_t value); + void boolean(bool value); + void null(); + + const std::string& str() const; + std::string to_string() const; + + private: + enum class ContainerType { + Object, + Array + }; + + struct Frame { + ContainerType type; + bool first; + bool expecting_key; + }; + + void before_value(); + void after_container_end(); + void begin_container(ContainerType type, char token); + void end_container(ContainerType expected, char token); + void newline_and_indent(std::size_t depth); + void write_escaped_string(std::string_view value); + + std::string m_output; + std::vector m_stack; + bool m_pretty; + std::string m_indent; +}; + +} // namespace utils +} // namespace modsecurity + +#endif // SRC_UTILS_JSON_WRITER_H_ diff --git a/test/Makefile.am b/test/Makefile.am index 2e7e05d614..98856f20a8 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -52,8 +52,7 @@ unit_tests_LDADD = \ $(LUA_LDADD) \ $(PCRE_LDADD) \ $(PCRE2_LDADD) \ - $(SSDEEP_LDADD) \ - $(YAJL_LDADD) + $(SSDEEP_LDADD) unit_tests_LDFLAGS = \ @@ -66,15 +65,15 @@ unit_tests_LDFLAGS = \ $(MAXMIND_LDFLAGS) \ $(LMDB_LDFLAGS) \ $(LUA_LDFLAGS) \ - $(SSDEEP_LDFLAGS) \ - $(YAJL_LDFLAGS) + $(SSDEEP_LDFLAGS) unit_tests_CPPFLAGS = \ -Icommon \ -I$(top_srcdir)/ \ + -I$(top_srcdir)/others/jsoncons/include \ -g \ - -I$(top_builddir)/headers \ + -I$(top_srcdir)/headers \ $(CURL_CFLAGS) \ $(MODSEC_NO_LOGS) \ $(GEOIP_CFLAGS) \ @@ -83,7 +82,6 @@ unit_tests_CPPFLAGS = \ $(LMDB_CFLAGS) \ $(PCRE_CFLAGS) \ $(PCRE2_CFLAGS) \ - $(YAJL_CFLAGS) \ $(LUA_CFLAGS) \ $(SSDEEP_CFLAGS) \ $(LIBXML2_CFLAGS) @@ -107,8 +105,7 @@ regression_tests_LDADD = \ $(LUA_LDADD) \ $(PCRE_LDADD) \ $(PCRE2_LDADD) \ - $(SSDEEP_LDADD) \ - $(YAJL_LDADD) + $(SSDEEP_LDADD) regression_tests_LDFLAGS = \ @@ -119,7 +116,6 @@ regression_tests_LDFLAGS = \ -lm \ -lstdc++ \ $(MAXMIND_LDFLAGS) \ - $(YAJL_LDFLAGS) \ $(LMDB_LDFLAGS) \ $(SSDEEP_LDFLAGS) \ $(LUA_LDFLAGS) @@ -128,8 +124,9 @@ regression_tests_LDFLAGS = \ regression_tests_CPPFLAGS = \ -Icommon \ -I$(top_srcdir) \ + -I$(top_srcdir)/others/jsoncons/include \ -g \ - -I$(top_builddir)/headers \ + -I$(top_srcdir)/headers \ $(CURL_CFLAGS) \ $(MODSEC_NO_LOGS) \ $(GEOIP_CFLAGS) \ @@ -140,7 +137,6 @@ regression_tests_CPPFLAGS = \ $(SSDEEP_CFLAGS) \ $(PCRE_CFLAGS) \ $(PCRE2_CFLAGS) \ - $(YAJL_CFLAGS) \ $(LIBXML2_CFLAGS) @@ -161,8 +157,7 @@ rules_optimization_LDADD = \ $(LUA_LDADD) \ $(PCRE_LDADD) \ $(PCRE2_LDADD) \ - $(SSDEEP_LDADD) \ - $(YAJL_LDADD) + $(SSDEEP_LDADD) rules_optimization_LDFLAGS = \ -L$(top_builddir)/src/.libs/ \ @@ -174,14 +169,13 @@ rules_optimization_LDFLAGS = \ $(MAXMIND_LDFLAGS) \ $(LMDB_LDFLAGS) \ $(LUA_LDFLAGS) \ - $(SSDEEP_LDFLAGS) \ - $(YAJL_LDFLAGS) + $(SSDEEP_LDFLAGS) rules_optimization_CPPFLAGS = \ -Icommon \ -I$(top_srcdir)/ \ -g \ - -I$(top_builddir)/headers \ + -I$(top_srcdir)/headers \ $(CURL_CFLAGS) \ $(MODSEC_NO_LOGS) \ $(GEOIP_CFLAGS) \ @@ -192,6 +186,4 @@ rules_optimization_CPPFLAGS = \ $(SSDEEP_CFLAGS) \ $(PCRE_CFLAGS) \ $(PCRE2_CFLAGS) \ - $(YAJL_CFLAGS) \ $(LIBXML2_CFLAGS) - diff --git a/test/benchmark/Makefile.am b/test/benchmark/Makefile.am index 2ac9d92111..3b7f92a443 100644 --- a/test/benchmark/Makefile.am +++ b/test/benchmark/Makefile.am @@ -11,7 +11,6 @@ benchmark_LDADD = \ $(MAXMIND_LDADD) \ $(PCRE_LDADD) \ $(PCRE2_LDADD) \ - $(YAJL_LDADD) \ $(LMDB_LDADD) \ $(SSDEEP_LDADD) \ $(LUA_LDADD) \ @@ -27,13 +26,12 @@ benchmark_LDFLAGS = \ -lstdc++ \ $(GEOIP_LDFLAGS) \ $(MAXMIND_LDFLAGS) \ - $(YAJL_LDFLAGS) \ $(LMDB_LDFLAGS) \ $(SSDEEP_LDFLAGS) \ $(LUA_LDFLAGS) benchmark_CPPFLAGS = \ - -I$(top_builddir)/headers \ + -I$(top_srcdir)/headers \ $(GLOBAL_CPPFLAGS) \ $(PCRE_CFLAGS) \ $(PCRE2_CFLAGS) \ @@ -42,4 +40,3 @@ benchmark_CPPFLAGS = \ MAINTAINERCLEANFILES = \ Makefile.in - diff --git a/test/common/json.h b/test/common/json.h new file mode 100644 index 0000000000..53f4feeb3b --- /dev/null +++ b/test/common/json.h @@ -0,0 +1,340 @@ +/* + * ModSecurity, http://www.modsecurity.org/ + * Copyright (c) 2015 - 2024 Trustwave Holdings, Inc. (http://www.trustwave.com/) + * + * You may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * If any of the files related to licensing are missing or if you have any + * other questions related to licensing please contact Trustwave Holdings, Inc. + * directly using the email address security@modsecurity.org. + * + */ + +#ifndef TEST_COMMON_JSON_H_ +#define TEST_COMMON_JSON_H_ + +#include + +#include +#include +#include +#include + +namespace modsecurity_test { +namespace json { + +enum class JsonType { + Object, + Array, + String, + Number, + Boolean, + Null, + Unknown +}; + +class JsonValue; + +class JsonField { + public: + JsonField() = default; + JsonField(std::string_view key, const jsoncons::json *value) + : m_key(key), + m_value(value) { } + + bool valid() const { + return m_value != nullptr; + } + + std::string_view unescaped_key() const { + return m_key; + } + + JsonValue value() const; + + private: + std::string_view m_key; + const jsoncons::json *m_value{nullptr}; +}; + +class JsonArray { + public: + class iterator { + public: + explicit iterator(jsoncons::json::const_array_iterator iterator) + : m_iterator(iterator) { } + + JsonValue operator*() const; + + iterator &operator++() { + ++m_iterator; + return *this; + } + + bool operator!=(const iterator &other) const { + return m_iterator != other.m_iterator; + } + + private: + jsoncons::json::const_array_iterator m_iterator; + }; + + JsonArray() = default; + explicit JsonArray(const jsoncons::json *value) : m_value(value) { } + + bool valid() const { + return m_value != nullptr && m_value->is_array(); + } + + iterator begin() const { + return iterator(m_value->array_range().begin()); + } + + iterator end() const { + return iterator(m_value->array_range().end()); + } + + private: + const jsoncons::json *m_value{nullptr}; +}; + +class JsonObject { + public: + class iterator { + public: + explicit iterator(jsoncons::json::const_object_iterator iterator) + : m_iterator(iterator) { } + + JsonField operator*() const { + const auto &member = *m_iterator; + return JsonField(std::string_view(member.key().data(), + member.key().size()), &member.value()); + } + + iterator &operator++() { + ++m_iterator; + return *this; + } + + bool operator!=(const iterator &other) const { + return m_iterator != other.m_iterator; + } + + private: + jsoncons::json::const_object_iterator m_iterator; + }; + + JsonObject() = default; + explicit JsonObject(const jsoncons::json *value) : m_value(value) { } + + bool valid() const { + return m_value != nullptr && m_value->is_object(); + } + + iterator begin() const { + return iterator(m_value->object_range().begin()); + } + + iterator end() const { + return iterator(m_value->object_range().end()); + } + + private: + const jsoncons::json *m_value{nullptr}; +}; + +class JsonValue { + public: + JsonValue() = default; + explicit JsonValue(const jsoncons::json *value) : m_value(value) { } + + bool valid() const { + return m_value != nullptr; + } + + JsonObject get_object() const { + return JsonObject(valid() && m_value->is_object() ? m_value : nullptr); + } + + JsonArray get_array() const { + return JsonArray(valid() && m_value->is_array() ? m_value : nullptr); + } + + JsonType type() const { + if (!valid()) { + return JsonType::Unknown; + } + if (m_value->is_object()) { + return JsonType::Object; + } + if (m_value->is_array()) { + return JsonType::Array; + } + if (m_value->is_string()) { + return JsonType::String; + } + if (m_value->is_bool()) { + return JsonType::Boolean; + } + if (m_value->is_null()) { + return JsonType::Null; + } + return JsonType::Number; + } + + const jsoncons::json *raw() const { + return m_value; + } + + private: + const jsoncons::json *m_value{nullptr}; +}; + +inline JsonValue JsonField::value() const { + return JsonValue(m_value); +} + +inline JsonValue JsonArray::iterator::operator*() const { + return JsonValue(&(*m_iterator)); +} + +class JsonDocument { + public: + JsonValue get_value() const { + return JsonValue(&m_root); + } + + JsonArray get_array() const { + return JsonArray(&m_root); + } + + bool parse(const std::string &input, std::string *error = nullptr) { + try { + m_root = jsoncons::json::parse(input); + return true; + } catch (const std::exception &exception) { + if (error != nullptr) { + error->assign(exception.what()); + } + return false; + } + } + + private: + jsoncons::json m_root; +}; + +inline bool get(JsonArray value, JsonArray *target, + std::string *error = nullptr) { + (void) error; + if (!value.valid()) { + return false; + } + *target = value; + return true; +} + +inline bool get(JsonField value, JsonField *target, + std::string *error = nullptr) { + (void) error; + if (!value.valid()) { + return false; + } + *target = value; + return true; +} + +inline bool get(JsonObject value, JsonObject *target, + std::string *error = nullptr) { + (void) error; + if (!value.valid()) { + return false; + } + *target = value; + return true; +} + +inline bool get(JsonType value, JsonType *target, + std::string *error = nullptr) { + (void) error; + *target = value; + return true; +} + +inline bool get(JsonValue value, JsonValue *target, + std::string *error = nullptr) { + (void) error; + if (!value.valid()) { + return false; + } + *target = value; + return true; +} + +inline bool get(std::string_view value, std::string_view *target, + std::string *error = nullptr) { + (void) error; + *target = value; + return true; +} + +inline bool load_document(const std::string &file, JsonDocument *document, + std::string *error) { + std::ifstream input(file.c_str()); + std::string buffer; + + if (input.is_open() == false) { + if (error != nullptr) { + error->assign("Unable to open JSON file."); + } + return false; + } + + buffer.assign((std::istreambuf_iterator(input)), + std::istreambuf_iterator()); + return document->parse(buffer, error); +} + +inline std::string get_string(JsonValue value) { + if (!value.valid()) { + return ""; + } + + try { + return value.raw()->as(); + } catch (const std::exception &) { + return ""; + } +} + +inline std::string get_raw_number(JsonValue value) { + if (!value.valid() || value.raw()->is_number() == false) { + return ""; + } + + try { + return value.raw()->as(); + } catch (const std::exception &) { + return ""; + } +} + +inline int64_t get_integer(JsonValue value) { + if (!value.valid()) { + return 0; + } + + try { + return value.raw()->as(); + } catch (const std::exception &) { + return 0; + } +} + +} // namespace json +} // namespace modsecurity_test + +#endif // TEST_COMMON_JSON_H_ diff --git a/test/common/modsecurity_test.cc b/test/common/modsecurity_test.cc index 23eed49e58..bec67285c4 100644 --- a/test/common/modsecurity_test.cc +++ b/test/common/modsecurity_test.cc @@ -15,9 +15,6 @@ #include "test/common/modsecurity_test.h" -#ifdef WITH_YAJL -#include -#endif #include #include #include @@ -29,6 +26,7 @@ #include #include "modsecurity/modsecurity.h" +#include "test/common/json.h" namespace modsecurity_test { @@ -47,8 +45,8 @@ std::string ModSecurityTest::header() { template bool ModSecurityTest::load_test_json(const std::string &file) { - char errbuf[1024]; - yajl_val node; + std::string error; + modsecurity_test::json::JsonDocument document; std::ifstream myfile; myfile.open(file.c_str()); @@ -56,29 +54,45 @@ bool ModSecurityTest::load_test_json(const std::string &file) { std::cout << "Problems opening file: " << file << std::endl; return false; } + myfile.close(); - std::string str((std::istreambuf_iterator(myfile)), - std::istreambuf_iterator()); - node = yajl_tree_parse((const char *) str.c_str(), errbuf, sizeof(errbuf)); - if (node == NULL) { + if (modsecurity_test::json::load_document(file, &document, &error) + == false) { std::cout << "Problems parsing file: " << file << std::endl; - if (strlen(errbuf) > 0) { - std::cout << errbuf << std::endl; + if (error.empty() == false) { + std::cout << error << std::endl; } return false; } if (m_format) { - auto u = T::from_yajl_node(node); + auto u = T::from_json_document(&document); u->filename = file; (*this)[file].push_back(std::move(u)); } else { - size_t num_tests = node->u.array.len; - for ( int i = 0; i < num_tests; i++ ) { - yajl_val obj = node->u.array.values[i]; + modsecurity_test::json::JsonArray tests; + if (modsecurity_test::json::get(document.get_array(), &tests, + &error) == false) { + std::cout << "Problems parsing file: " << file << std::endl; + if (error.empty() == false) { + std::cout << error << std::endl; + } + return false; + } - auto u = T::from_yajl_node(obj); + for (auto test_result : tests) { + modsecurity_test::json::JsonValue value; + if (modsecurity_test::json::get(std::move(test_result), &value, + &error) == false) { + std::cout << "Problems parsing file: " << file << std::endl; + if (error.empty() == false) { + std::cout << error << std::endl; + } + return false; + } + + auto u = T::from_json_value(value); u->filename = file; const auto key = u->filename + ":" + u->name; @@ -86,8 +100,6 @@ bool ModSecurityTest::load_test_json(const std::string &file) { } } - yajl_tree_free(node); - return true; } diff --git a/test/common/modsecurity_test.h b/test/common/modsecurity_test.h index 6e8a3bbc8f..80ebaefa09 100644 --- a/test/common/modsecurity_test.h +++ b/test/common/modsecurity_test.h @@ -18,6 +18,7 @@ #include #include #include +#include #ifndef TEST_COMMON_MODSECURITY_TEST_H_ #define TEST_COMMON_MODSECURITY_TEST_H_ diff --git a/test/fuzzer/Makefile.am b/test/fuzzer/Makefile.am index eee3a94e23..b1022fdab9 100644 --- a/test/fuzzer/Makefile.am +++ b/test/fuzzer/Makefile.am @@ -19,7 +19,6 @@ afl_fuzzer_LDADD = \ $(GEOIP_LDFLAGS) $(GEOIP_LDADD) \ $(PCRE_LDADD) \ $(PCRE2_LDADD) \ - $(YAJL_LDFLAGS) $(YAJL_LDADD) \ $(LMDB_LDFLAGS) $(LMDB_LDADD) \ $(MAXMIND_LDFLAGS) $(MAXMIND_LDADD) \ $(SSDEEP_LDFLAGS) $(SSDEEP_LDADD) \ @@ -36,13 +35,12 @@ afl_fuzzer_CPPFLAGS = \ -I../../ \ -O0 \ -g \ - -I$(top_builddir)/headers \ + -I$(top_srcdir)/headers \ $(CURL_CFLAGS) \ $(GEOIP_CFLAGS) \ $(MAXMIND_CFLAGS) \ $(GLOBAL_CPPFLAGS) \ $(MODSEC_NO_LOGS) \ - $(YAJL_CFLAGS) \ $(LMDB_CFLAGS) \ $(PCRE_CFLAGS) \ $(PCRE2_CFLAGS) \ diff --git a/test/regression/regression.cc b/test/regression/regression.cc index 5b1ca514e8..f1d8eab8d7 100644 --- a/test/regression/regression.cc +++ b/test/regression/regression.cc @@ -439,7 +439,6 @@ int main(int argc, char **argv) test.cmd_options(argc, argv); if (test.m_format) { -#ifdef WITH_YAJL std::cout << "start formatting test case JSON files" << std::endl; ModSecurityTest test2; test2.cmd_options(argc, argv); @@ -459,11 +458,6 @@ int main(int argc, char **argv) } std::cout << "finished formatting files." << std::endl; return 0; -#else - std::cout << "Test utility cannot format test case JSON files without being built with YAJL." \ - << std::endl; - return 1; -#endif } if (!test.m_automake_output && !test.m_count_all) { diff --git a/test/regression/regression_test.cc b/test/regression/regression_test.cc index 18f61b64dc..809ad34bf5 100644 --- a/test/regression/regression_test.cc +++ b/test/regression/regression_test.cc @@ -22,12 +22,131 @@ #include #include #include +#include -#ifdef WITH_YAJL -#include -#endif +#include "src/utils/json_writer.h" namespace modsecurity_test { +namespace { + +std::string join_strings(const std::vector &values) { + std::stringstream stream; + + for (const auto &entry : values) { + stream << entry; + } + + return stream.str(); +} + +std::vector json_array_to_vec_string( + modsecurity_test::json::JsonValue value) { + modsecurity_test::json::JsonArray array; + std::vector values; + + if (modsecurity_test::json::get(value.get_array(), &array) == false) { + return values; + } + + for (auto entry_result : array) { + modsecurity_test::json::JsonValue entry; + + if (modsecurity_test::json::get(std::move(entry_result), &entry) + == false) { + continue; + } + + values.push_back(modsecurity_test::json::get_string(entry)); + } + + return values; +} + +std::vector> json_object_to_map( + modsecurity_test::json::JsonValue value) { + modsecurity_test::json::JsonObject object; + std::vector> values; + + if (modsecurity_test::json::get(value.get_object(), &object) == false) { + return values; + } + + for (auto field_result : object) { + modsecurity_test::json::JsonField field; + std::string_view key; + modsecurity_test::json::JsonValue child; + + if (modsecurity_test::json::get(std::move(field_result), &field) + == false) { + continue; + } + if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { + continue; + } + child = field.value(); + + values.emplace_back(std::string(key), + modsecurity_test::json::get_string(child)); + } + + return values; +} + +void set_int_from_json(int &dest, std::string_view want_key, + std::string_view key, modsecurity_test::json::JsonValue value) { + if (key == want_key) { + dest = static_cast(modsecurity_test::json::get_integer(value)); + } +} + +void set_opt_int_from_json(std::optional &dest, std::string_view want_key, + std::string_view key, modsecurity_test::json::JsonValue value) { + if (key == want_key) { + dest = static_cast(modsecurity_test::json::get_integer(value)); + } +} + +void set_string_from_json(std::string &dest, std::string_view want_key, + std::string_view key, modsecurity_test::json::JsonValue value) { + if (key == want_key) { + dest = modsecurity_test::json::get_string(value); + } +} + +std::unique_ptr make_empty_regression_test() { + auto test = std::make_unique(); + test->enabled = 0; + test->version_min = 0; + test->clientPort = 0; + test->serverPort = 0; + test->http_code = 200; + return test; +} + +void append_headers(modsecurity::utils::JsonWriter *writer, + const std::vector> &headers) { + writer->start_object(); + for (const auto &[name, value] : headers) { + writer->key(name); + writer->string(value); + } + writer->end_object(); +} + +void append_string_array(modsecurity::utils::JsonWriter *writer, + std::vector values) { + if (values.empty()) { + values.emplace_back(""); + } + + writer->start_array(); + for (const auto &value : values) { + writer->string(value); + } + writer->end_array(); +} + +} // namespace std::string RegressionTest::print() { std::stringstream i; @@ -48,182 +167,254 @@ std::string RegressionTest::print() { return i.str(); } +std::unique_ptr RegressionTest::from_json_document( + modsecurity_test::json::JsonDocument *document) { + modsecurity_test::json::JsonValue root; -inline std::string RegressionTest::yajl_array_to_str(const yajl_val &node) { - std::stringstream i; - for (int z = 0; z < node->u.array.len; z++) { - yajl_val val3 = node->u.array.values[z]; - const char *key = YAJL_GET_STRING(val3); - i << key; + if (modsecurity_test::json::get(document->get_value(), &root) == false) { + return make_empty_regression_test(); } - return i.str(); -} - -inline std::vector RegressionTest::yajl_array_to_vec_str( - const yajl_val &node) { - std::vector vec; - for (int z = 0; z < node->u.array.len; z++) { - yajl_val val3 = node->u.array.values[z]; - const char *key = YAJL_GET_STRING(val3); - vec.push_back(key); + modsecurity_test::json::JsonType type; + if (modsecurity_test::json::get(root.type(), &type) == false) { + return make_empty_regression_test(); } - return vec; -} + if (type == modsecurity_test::json::JsonType::Array) { + modsecurity_test::json::JsonArray tests; + if (modsecurity_test::json::get(root.get_array(), &tests) == false) { + return make_empty_regression_test(); + } -inline std::vector> - RegressionTest::yajl_array_to_map(const yajl_val &node) { - std::vector> vec; - for (int z = 0; z < node->u.object.len; z++) { - const char *key = node->u.object.keys[z]; - yajl_val val3 = node->u.object.values[z]; - const char *value = YAJL_GET_STRING(val3); - std::pair a(key, value); - vec.push_back(a); - } - return vec; -} + for (auto test_result : tests) { + modsecurity_test::json::JsonValue test; + if (modsecurity_test::json::get(std::move(test_result), &test) + == false) { + continue; + } -static inline void set_int_from_yajl(int &dest, std::string_view want_key, std::string_view key, const yajl_val &val) { - if (key == want_key) { - dest = YAJL_GET_INTEGER(val); - } -} + return from_json_value(test); + } -static inline void set_opt_int_from_yajl(std::optional &dest, std::string_view want_key, std::string_view key, const yajl_val &val) { - if (key == want_key) { - dest = YAJL_GET_INTEGER(val); + return make_empty_regression_test(); } + + return from_json_value(root); } -static inline void set_string_from_yajl(std::string &dest, std::string_view want_key, std::string_view key, const yajl_val &val) { - if (key == want_key) { - dest = YAJL_GET_STRING(val); +std::unique_ptr RegressionTest::from_json_value( + modsecurity_test::json::JsonValue value) { + modsecurity_test::json::JsonObject object; + auto test = make_empty_regression_test(); + + if (modsecurity_test::json::get(value.get_object(), &object) == false) { + return test; } -} -std::unique_ptr RegressionTest::from_yajl_node(const yajl_val &node) { - size_t nelem = node->u.object.len; - auto u = std::make_unique(); - u->http_code = 200; - - for (int i = 0; i < nelem; i++) { - const char *key = node->u.object.keys[ i ]; - yajl_val val = node->u.object.values[ i ]; - - set_int_from_yajl(u->enabled, "enabled", key, val); - set_int_from_yajl(u->version_min, "version_min", key, val); - set_opt_int_from_yajl(u->version_max, "version_max", key, val); - set_string_from_yajl(u->title, "title", key, val); - set_string_from_yajl(u->url, "url", key, val); - set_string_from_yajl(u->resource, "resource", key, val); - set_opt_int_from_yajl(u->github_issue, "github_issue", key, val); - if (strcmp(key, "client") == 0) { - u->update_client_from_yajl_node(val); - } - if (strcmp(key, "server") == 0) { - u->update_server_from_yajl_node(val); + for (auto field_result : object) { + modsecurity_test::json::JsonField field; + std::string_view key; + modsecurity_test::json::JsonValue child; + + if (modsecurity_test::json::get(std::move(field_result), &field) + == false) { + continue; } - if (strcmp(key, "request") == 0) { - u->update_request_from_yajl_node(val); + if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { + continue; } - if (strcmp(key, "response") == 0) { - u->update_response_from_yajl_node(val); + child = field.value(); + + set_int_from_json(test->enabled, "enabled", key, child); + set_int_from_json(test->version_min, "version_min", key, child); + set_opt_int_from_json(test->version_max, "version_max", key, child); + set_string_from_json(test->title, "title", key, child); + set_string_from_json(test->url, "url", key, child); + set_string_from_json(test->resource, "resource", key, child); + set_opt_int_from_json(test->github_issue, "github_issue", key, child); + + if (key == "client") { + test->update_client_from_json_value(child); + } else if (key == "server") { + test->update_server_from_json_value(child); + } else if (key == "request") { + test->update_request_from_json_value(child); + } else if (key == "response") { + test->update_response_from_json_value(child); + } else if (key == "expected") { + test->update_expected_from_json_value(child); + } else if (key == "rules") { + test->update_rules_from_json_value(child); } - if (strcmp(key, "expected") == 0) { - u->update_expected_from_yajl_node(val); + } + + test->name = test->title; + return test; +} + +void RegressionTest::update_client_from_json_value( + modsecurity_test::json::JsonValue value) { + modsecurity_test::json::JsonObject object; + + if (modsecurity_test::json::get(value.get_object(), &object) == false) { + return; + } + + for (auto field_result : object) { + modsecurity_test::json::JsonField field; + std::string_view key; + modsecurity_test::json::JsonValue child; + + if (modsecurity_test::json::get(std::move(field_result), &field) + == false) { + continue; } - if (strcmp(key, "rules") == 0) { - u->update_rules_from_yajl_node(val); + if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { + continue; } + child = field.value(); + + set_string_from_json(clientIp, "ip", key, child); + set_int_from_json(clientPort, "port", key, child); } +} - u->name = u->title; +void RegressionTest::update_server_from_json_value( + modsecurity_test::json::JsonValue value) { + modsecurity_test::json::JsonObject object; - return u; -} + if (modsecurity_test::json::get(value.get_object(), &object) == false) { + return; + } -void RegressionTest::update_client_from_yajl_node(const yajl_val &val) { - for (int j = 0; j < val->u.object.len; j++) { - const char *key2 = val->u.object.keys[j]; - yajl_val val2 = val->u.object.values[j]; + for (auto field_result : object) { + modsecurity_test::json::JsonField field; + std::string_view key; + modsecurity_test::json::JsonValue child; - set_string_from_yajl(clientIp, "ip", key2, val2); - set_int_from_yajl(clientPort, "port", key2, val2); + if (modsecurity_test::json::get(std::move(field_result), &field) + == false) { + continue; + } + if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { + continue; + } + child = field.value(); + + set_string_from_json(serverIp, "ip", key, child); + set_int_from_json(serverPort, "port", key, child); + set_string_from_json(hostname, "hostname", key, child); } } -void RegressionTest::update_server_from_yajl_node(const yajl_val &val) { - for (int j = 0; j < val->u.object.len; j++) { - const char *key2 = val->u.object.keys[j]; - yajl_val val2 = val->u.object.values[j]; +void RegressionTest::update_request_from_json_value( + modsecurity_test::json::JsonValue value) { + modsecurity_test::json::JsonObject object; - set_string_from_yajl(serverIp, "ip", key2, val2); - set_int_from_yajl(serverPort, "port", key2, val2); - set_string_from_yajl(hostname, "hostname", key2, val2); + if (modsecurity_test::json::get(value.get_object(), &object) == false) { + return; } -} -void RegressionTest::update_request_from_yajl_node(const yajl_val &val) { - for (int j = 0; j < val->u.object.len; j++) { - const char *key2 = val->u.object.keys[j]; - yajl_val val2 = val->u.object.values[j]; + for (auto field_result : object) { + modsecurity_test::json::JsonField field; + std::string_view key; + modsecurity_test::json::JsonValue child; - set_string_from_yajl(uri, "uri", key2, val2); - set_string_from_yajl(method, "method", key2, val2); - if (strcmp(key2, "http_version") == 0) { - httpVersion = YAJL_GET_NUMBER(val2); + if (modsecurity_test::json::get(std::move(field_result), &field) + == false) { + continue; } - if (strcmp(key2, "headers") == 0) { - request_headers = yajl_array_to_map(val2); + if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { + continue; } - if (strcmp(key2, "body") == 0) { - request_body = yajl_array_to_str(val2); - request_body_lines = yajl_array_to_vec_str(val2); + child = field.value(); + + set_string_from_json(uri, "uri", key, child); + set_string_from_json(method, "method", key, child); + if (key == "http_version") { + httpVersion = modsecurity_test::json::get_raw_number(child); + } else if (key == "headers") { + request_headers = json_object_to_map(child); + } else if (key == "body") { + request_body_lines = json_array_to_vec_string(child); + request_body = join_strings(request_body_lines); } } } -void RegressionTest::update_response_from_yajl_node(const yajl_val &val) { - for (int j = 0; j < val->u.object.len; j++) { - const char *key2 = val->u.object.keys[j]; - yajl_val val2 = val->u.object.values[j]; +void RegressionTest::update_response_from_json_value( + modsecurity_test::json::JsonValue value) { + modsecurity_test::json::JsonObject object; - if (strcmp(key2, "headers") == 0) { - response_headers = yajl_array_to_map(val2); + if (modsecurity_test::json::get(value.get_object(), &object) == false) { + return; + } + + for (auto field_result : object) { + modsecurity_test::json::JsonField field; + std::string_view key; + modsecurity_test::json::JsonValue child; + + if (modsecurity_test::json::get(std::move(field_result), &field) + == false) { + continue; } - if (strcmp(key2, "body") == 0) { - response_body = yajl_array_to_str(val2); - response_body_lines = yajl_array_to_vec_str(val2); + if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { + continue; } - set_string_from_yajl(response_protocol, "protocol", key2, val2); + child = field.value(); + + if (key == "headers") { + response_headers = json_object_to_map(child); + } else if (key == "body") { + response_body_lines = json_array_to_vec_string(child); + response_body = join_strings(response_body_lines); + } + set_string_from_json(response_protocol, "protocol", key, child); } } -void RegressionTest::update_expected_from_yajl_node(const yajl_val &val) { - for (int j = 0; j < val->u.object.len; j++) { - const char *key2 = val->u.object.keys[j]; - yajl_val val2 = val->u.object.values[j]; +void RegressionTest::update_expected_from_json_value( + modsecurity_test::json::JsonValue value) { + modsecurity_test::json::JsonObject object; - set_string_from_yajl(audit_log, "audit_log", key2, val2); - set_string_from_yajl(debug_log, "debug_log", key2, val2); - set_string_from_yajl(error_log, "error_log", key2, val2); - set_int_from_yajl(http_code, "http_code", key2, val2); - set_string_from_yajl(redirect_url, "redirect_url", key2, val2); - set_string_from_yajl(parser_error, "parser_error", key2, val2); + if (modsecurity_test::json::get(value.get_object(), &object) == false) { + return; + } + + for (auto field_result : object) { + modsecurity_test::json::JsonField field; + std::string_view key; + modsecurity_test::json::JsonValue child; + + if (modsecurity_test::json::get(std::move(field_result), &field) + == false) { + continue; + } + if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { + continue; + } + child = field.value(); + + set_string_from_json(audit_log, "audit_log", key, child); + set_string_from_json(debug_log, "debug_log", key, child); + set_string_from_json(error_log, "error_log", key, child); + set_int_from_json(http_code, "http_code", key, child); + set_string_from_json(redirect_url, "redirect_url", key, child); + set_string_from_json(parser_error, "parser_error", key, child); } } -void RegressionTest::update_rules_from_yajl_node(const yajl_val &val) { - std::stringstream si; - for (int j = 0; j < val->u.array.len; j++) { - yajl_val val2 = val->u.array.values[ j ]; - const char *keyj = YAJL_GET_STRING(val2); - si << keyj << "\n"; +void RegressionTest::update_rules_from_json_value( + modsecurity_test::json::JsonValue value) { + std::stringstream stream; + + rules_lines = json_array_to_vec_string(value); + for (const auto &line : rules_lines) { + stream << line << "\n"; } - rules = si.str(); - rules_lines = yajl_array_to_vec_str(val); + + rules = stream.str(); } @@ -269,187 +460,149 @@ void RegressionTest::update_content_lengths() { update_content_length(response_headers, response_body.size()); } -std::unique_ptr RegressionTests::from_yajl_node(const yajl_val &node) { - auto u = std::make_unique(); - size_t num_tests = node->u.array.len; - for (int i = 0; i < num_tests; i++) { - yajl_val obj = node->u.array.values[i]; - u->tests.emplace_back(std::move(RegressionTest::from_yajl_node(obj))); - } - return u; -} +std::unique_ptr RegressionTests::from_json_document( + modsecurity_test::json::JsonDocument *document) { + modsecurity_test::json::JsonValue root; -void RegressionTests::update_content_lengths() { - for (auto & test : tests) { - test->update_content_lengths(); + if (modsecurity_test::json::get(document->get_value(), &root) == false) { + return std::make_unique(); } -} -#ifdef WITH_YAJL - -static yajl_gen_status gen_string_view(yajl_gen g, std::string_view s) { - return yajl_gen_string(g, reinterpret_cast(s.data()), s.length()); + return from_json_value(root); } -static yajl_gen_status gen_key_str(yajl_gen g, std::string_view key, std::string_view val) { - if (auto s{gen_string_view(g, key)}; s != yajl_gen_status_ok) { - return s; - } - return gen_string_view(g, val); -} +std::unique_ptr RegressionTests::from_json_value( + modsecurity_test::json::JsonValue value) { + auto tests = std::make_unique(); + modsecurity_test::json::JsonType type; -static yajl_gen_status gen_key_str_if_non_empty(yajl_gen g, std::string_view key, std::string_view val) { - if (val.empty()) { - return yajl_gen_status_ok; + if (modsecurity_test::json::get(value.type(), &type) == false) { + return tests; } - return gen_key_str(g, key, val); -} -static yajl_gen_status gen_key_int(yajl_gen g, std::string_view key, int val) { - if (auto s{gen_string_view(g, key)}; s != yajl_gen_status_ok) { - return s; - } - return yajl_gen_integer(g, val); -} + if (type == modsecurity_test::json::JsonType::Array) { + modsecurity_test::json::JsonArray array; -static yajl_gen_status gen_key_opt_int(yajl_gen g, std::string_view key, std::optional val) { - if (!val.has_value()) { - return yajl_gen_status_ok; - } - return gen_key_int(g, key, val.value()); -} + if (modsecurity_test::json::get(value.get_array(), &array) == false) { + return tests; + } -static yajl_gen_status gen_key_int_if_non_zero(yajl_gen g, std::string_view key, int val) { - if (val == 0) { - return yajl_gen_status_ok; + for (auto test_result : array) { + modsecurity_test::json::JsonValue test_value; + if (modsecurity_test::json::get(std::move(test_result), &test_value) + == false) { + continue; + } + tests->tests.emplace_back( + std::move(RegressionTest::from_json_value(test_value))); + } + return tests; } - return gen_key_int(g, key, val); -} -static yajl_gen_status gen_key_number(yajl_gen g, std::string_view key, std::string_view raw_val) { - if (auto s{gen_string_view(g, key)}; s != yajl_gen_status_ok) { - return s; + if (type == modsecurity_test::json::JsonType::Object) { + tests->tests.emplace_back(std::move(RegressionTest::from_json_value(value))); } - return yajl_gen_number(g, reinterpret_cast(raw_val.data()), raw_val.length()); -} -static yajl_gen_status gen_key_str_array(yajl_gen g, std::string_view key, const std::vector &lines) { - if (auto s{gen_string_view(g, key)}; s != yajl_gen_status_ok) { - return s; - } - if (auto s{yajl_gen_array_open(g)}; s != yajl_gen_status_ok) { - return s; - } - for (const auto &line : lines) { - if (auto s{gen_string_view(g, line)}; s != yajl_gen_status_ok) { - return s; - } - } - return yajl_gen_array_close(g); + return tests; } -static yajl_gen_status gen_key_headers(yajl_gen g, std::string_view key, const std::vector> &headers) { - if (auto s{gen_string_view(g, key)}; s != yajl_gen_status_ok) { - return s; - } - if (auto s{yajl_gen_map_open(g)}; s != yajl_gen_status_ok) { - return s; - } - for (const auto &[name, value] : headers) { - if (auto s{gen_key_str(g, name, value)}; s != yajl_gen_status_ok) { - return s; - } +void RegressionTests::update_content_lengths() { + for (auto & test : tests) { + test->update_content_lengths(); } - return yajl_gen_map_close(g); } std::string RegressionTests::toJSON() const { - const unsigned char *buf; - size_t len; - yajl_gen g; - - g = yajl_gen_alloc(NULL); - if (g == NULL) { - return ""; - } - yajl_gen_config(g, yajl_gen_beautify, 1); - yajl_gen_config(g, yajl_gen_indent_string, " "); - - yajl_gen_array_open(g); - for (const auto &t : tests) { - yajl_gen_map_open(g); - gen_key_int(g, "enabled", t->enabled); - gen_key_int(g, "version_min", t->version_min); - gen_key_opt_int(g, "version_max", t->version_max); - gen_key_str(g, "title", t->title); - gen_key_str_if_non_empty(g, "url", t->url); - gen_key_str_if_non_empty(g, "resource", t->resource); - gen_key_opt_int(g, "github_issue", t->github_issue); - - gen_string_view(g, "client"); - yajl_gen_map_open(g); - gen_key_str(g, "ip", t->clientIp); - gen_key_int(g, "port", t->clientPort); - yajl_gen_map_close(g); - - gen_string_view(g, "server"); - yajl_gen_map_open(g); - gen_key_str(g, "ip", t->serverIp); - gen_key_int(g, "port", t->serverPort); - yajl_gen_map_close(g); - - gen_string_view(g, "request"); - yajl_gen_map_open(g); - gen_key_headers(g, "headers", t->request_headers); - gen_key_str(g, "uri", t->uri); - gen_key_str(g, "method", t->method); - if (!t->httpVersion.empty()) { - gen_key_number(g, "http_version", t->httpVersion); + modsecurity::utils::JsonWriter writer(true, " "); + + const auto addString = [&writer](std::string_view key, + const std::string &value) { + writer.key(key); + writer.string(value); + }; + const auto addStringIfNonEmpty = [&writer, &addString]( + std::string_view key, const std::string &value) { + if (value.empty() == false) { + addString(key, value); } - - auto request_body_lines{t->request_body_lines}; - if (request_body_lines.empty()) { - request_body_lines.emplace_back(""); + }; + const auto addInteger = [&writer](std::string_view key, int value) { + writer.key(key); + writer.integer(value); + }; + const auto addOptionalInteger = [&writer](std::string_view key, + const std::optional &value) { + if (value.has_value()) { + writer.key(key); + writer.integer(value.value()); } - gen_key_str_array(g, "body", request_body_lines); - - yajl_gen_map_close(g); + }; - gen_string_view(g, "response"); - yajl_gen_map_open(g); - gen_key_headers(g, "headers", t->response_headers); - - auto response_body_lines{t->response_body_lines}; - if (response_body_lines.empty()) { - response_body_lines.emplace_back(""); + writer.start_array(); + for (const auto &t : tests) { + writer.start_object(); + addInteger("enabled", t->enabled); + addInteger("version_min", t->version_min); + addOptionalInteger("version_max", t->version_max); + addString("title", t->title); + addStringIfNonEmpty("url", t->url); + addStringIfNonEmpty("resource", t->resource); + addOptionalInteger("github_issue", t->github_issue); + + writer.key("client"); + writer.start_object(); + addString("ip", t->clientIp); + addInteger("port", t->clientPort); + writer.end_object(); + + writer.key("server"); + writer.start_object(); + addString("ip", t->serverIp); + addInteger("port", t->serverPort); + writer.end_object(); + + writer.key("request"); + writer.start_object(); + writer.key("headers"); + append_headers(&writer, t->request_headers); + addString("uri", t->uri); + addString("method", t->method); + if (!t->httpVersion.empty()) { + writer.key("http_version"); + writer.number(t->httpVersion); } - gen_key_str_array(g, "body", response_body_lines); - - gen_key_str_if_non_empty(g, "protocol", t->response_protocol); - yajl_gen_map_close(g); - - gen_string_view(g, "expected"); - yajl_gen_map_open(g); - gen_key_str_if_non_empty(g, "audit_log", t->audit_log); - gen_key_str_if_non_empty(g, "debug_log", t->debug_log); - gen_key_str_if_non_empty(g, "error_log", t->error_log); - gen_key_int(g, "http_code", t->http_code); - gen_key_str_if_non_empty(g, "redirect_url", t->redirect_url); - gen_key_str_if_non_empty(g, "parser_error", t->parser_error); - yajl_gen_map_close(g); - gen_key_str_array(g, "rules", t->rules_lines); - - yajl_gen_map_close(g); - } - yajl_gen_array_close(g); - - yajl_gen_get_buf(g, &buf, &len); - std::string s{reinterpret_cast(buf), len}; - yajl_gen_free(g); - return s; + writer.key("body"); + append_string_array(&writer, t->request_body_lines); + writer.end_object(); + + writer.key("response"); + writer.start_object(); + writer.key("headers"); + append_headers(&writer, t->response_headers); + writer.key("body"); + append_string_array(&writer, t->response_body_lines); + addStringIfNonEmpty("protocol", t->response_protocol); + writer.end_object(); + + writer.key("expected"); + writer.start_object(); + addStringIfNonEmpty("audit_log", t->audit_log); + addStringIfNonEmpty("debug_log", t->debug_log); + addStringIfNonEmpty("error_log", t->error_log); + addInteger("http_code", t->http_code); + addStringIfNonEmpty("redirect_url", t->redirect_url); + addStringIfNonEmpty("parser_error", t->parser_error); + writer.end_object(); + + writer.key("rules"); + append_string_array(&writer, t->rules_lines); + + writer.end_object(); + } + writer.end_array(); + + return writer.to_string(); } -#endif // WITH_YAJL - } // namespace modsecurity_test diff --git a/test/regression/regression_test.h b/test/regression/regression_test.h index 0271482f96..88cd66f286 100644 --- a/test/regression/regression_test.h +++ b/test/regression/regression_test.h @@ -13,8 +13,6 @@ * */ -#include - #include #include #include @@ -24,6 +22,8 @@ #include #include +#include "test/common/json.h" + #ifndef TEST_REGRESSION_REGRESSION_TEST_H_ #define TEST_REGRESSION_REGRESSION_TEST_H_ @@ -32,7 +32,10 @@ namespace modsecurity_test { class RegressionTest { public: - static std::unique_ptr from_yajl_node(const yajl_val &); + static std::unique_ptr from_json_document( + modsecurity_test::json::JsonDocument *document); + static std::unique_ptr from_json_value( + modsecurity_test::json::JsonValue value); static std::string print(); std::string filename; @@ -69,12 +72,6 @@ class RegressionTest { std::string uri; std::string resource; - static inline std::string yajl_array_to_str(const yajl_val &node); - static inline std::vector yajl_array_to_vec_str( - const yajl_val &node); - static inline std::vector> - yajl_array_to_map(const yajl_val &node); - int http_code; std::string redirect_url; @@ -86,17 +83,20 @@ class RegressionTest { void update_content_lengths(); private: - void update_client_from_yajl_node(const yajl_val &val); - void update_server_from_yajl_node(const yajl_val &val); - void update_request_from_yajl_node(const yajl_val &val); - void update_response_from_yajl_node(const yajl_val &val); - void update_expected_from_yajl_node(const yajl_val &val); - void update_rules_from_yajl_node(const yajl_val &val); + void update_client_from_json_value(modsecurity_test::json::JsonValue value); + void update_server_from_json_value(modsecurity_test::json::JsonValue value); + void update_request_from_json_value(modsecurity_test::json::JsonValue value); + void update_response_from_json_value(modsecurity_test::json::JsonValue value); + void update_expected_from_json_value(modsecurity_test::json::JsonValue value); + void update_rules_from_json_value(modsecurity_test::json::JsonValue value); }; class RegressionTests { public: - static std::unique_ptr from_yajl_node(const yajl_val &); + static std::unique_ptr from_json_document( + modsecurity_test::json::JsonDocument *document); + static std::unique_ptr from_json_value( + modsecurity_test::json::JsonValue value); void update_content_lengths(); std::string toJSON() const; diff --git a/test/test-cases/regression/request-body-parser-json-backend-edgecases.json b/test/test-cases/regression/request-body-parser-json-backend-edgecases.json new file mode 100644 index 0000000000..e19a0a3bc5 --- /dev/null +++ b/test/test-cases/regression/request-body-parser-json-backend-edgecases.json @@ -0,0 +1,677 @@ +[ + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - root scalar string", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "7" + }, + "uri": "/", + "method": "POST", + "body": [ + "\"hello\"" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"hello\" \\(Variable: ARGS:json\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210101',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json \"^hello$\" \"id:'210102',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - root scalar decimal number", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "3" + }, + "uri": "/", + "method": "POST", + "body": [ + "1.0" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"1.0\" \\(Variable: ARGS:json\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210103',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json \"^1.0$\" \"id:'210104',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - root scalar scientific number", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "3" + }, + "uri": "/", + "method": "POST", + "body": [ + "1e3" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"1e3\" \\(Variable: ARGS:json\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210105',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json \"^1e3$\" \"id:'210106',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - root scalar negative zero", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "2" + }, + "uri": "/", + "method": "POST", + "body": [ + "-0" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"-0\" \\(Variable: ARGS:json\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210107',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json \"^-0$\" \"id:'210108',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - root scalar big integer", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "30" + }, + "uri": "/", + "method": "POST", + "body": [ + "123456789012345678901234567890" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"123456789012345678901234567890\" \\(Variable: ARGS:json\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210109',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json \"^123456789012345678901234567890$\" \"id:'210110',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - root scalar boolean", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "5" + }, + "uri": "/", + "method": "POST", + "body": [ + "false" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"false\" \\(Variable: ARGS:json\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210121',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json \"^false$\" \"id:'210122',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - root scalar null", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "4" + }, + "uri": "/", + "method": "POST", + "body": [ + "null" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"\" \\(Variable: ARGS:json\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210123',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json \"^$\" \"id:'210124',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - nested root array path", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "20" + }, + "uri": "/", + "method": "POST", + "body": [ + "[{\"deep\":[\"x\",\"y\"]}]" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"y\" \\(Variable: ARGS:json.array_0.deep.array_1\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210111',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json.array_0.deep.array_1 \"^y$\" \"id:'210112',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - empty root array", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "2" + }, + "uri": "/", + "method": "POST", + "body": [ + "[]" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"0\" .Variable: REQBODY_ERROR.", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210125',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule REQBODY_ERROR \"0\" \"id:'210126',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - empty root object", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "2" + }, + "uri": "/", + "method": "POST", + "body": [ + "{}" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"0\" .Variable: REQBODY_ERROR.", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210113',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule REQBODY_ERROR \"0\" \"id:'210114',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - root array high index", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "21" + }, + "uri": "/", + "method": "POST", + "body": [ + "[0,1,2,3,4,5,6,7,8,9]" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"9\" \\(Variable: ARGS:json.array_9\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210127',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json.array_9 \"^9$\" \"id:'210128',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - root scalar big exponent", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "6" + }, + "uri": "/", + "method": "POST", + "body": [ + "1e1000" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"1e1000\" \\(Variable: ARGS:json\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210129',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json \"^1e1000$\" \"id:'210130',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - duplicate keys remain addressable", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "30" + }, + "uri": "/", + "method": "POST", + "body": [ + "{\"dup\":\"first\",\"dup\":\"second\"}" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"second\" \\(Variable: ARGS:json.dup\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210115',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json.dup \"^second$\" \"id:'210116',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - truncated body", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "7" + }, + "uri": "/", + "method": "POST", + "body": [ + "{\"foo\":" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Failed to parse request body", + "http_code": 403 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210117',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule REQBODY_ERROR \"!@eq 0\" \"id:'210118',phase:2,t:none,log,deny,status:403,msg:'Failed to parse request body.',logdata:'%{reqbody_error_msg}'\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - invalid unicode escape", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "16" + }, + "uri": "/", + "method": "POST", + "body": [ + "{\"bad\":\"\\uD800\"}" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Failed to parse request body", + "http_code": 403 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210119',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule REQBODY_ERROR \"!@eq 0\" \"id:'210120',phase:2,t:none,log,deny,status:403,msg:'Failed to parse request body.',logdata:'%{reqbody_error_msg}'\"" + ] + } +] diff --git a/test/test-suite.in b/test/test-suite.in index 6e8754254b..f16500eb65 100644 --- a/test/test-suite.in +++ b/test/test-suite.in @@ -96,6 +96,7 @@ TESTS+=test/test-cases/regression/operator-verifycpf.json TESTS+=test/test-cases/regression/operator-verifyssn.json TESTS+=test/test-cases/regression/operator-verifysvnr.json TESTS+=test/test-cases/regression/request-body-parser-json.json +TESTS+=test/test-cases/regression/request-body-parser-json-backend-edgecases.json TESTS+=test/test-cases/regression/request-body-parser-multipart-crlf.json TESTS+=test/test-cases/regression/request-body-parser-multipart.json TESTS+=test/test-cases/regression/request-body-parser-xml.json diff --git a/test/unit/unit_test.cc b/test/unit/unit_test.cc index e67c100523..22519e264b 100644 --- a/test/unit/unit_test.cc +++ b/test/unit/unit_test.cc @@ -29,6 +29,16 @@ namespace modsecurity_test { +namespace { + +std::unique_ptr make_empty_unit_test() { + auto test = std::make_unique(); + test->ret = 0; + test->skipped = false; + return test; +} + +} // namespace void replaceAll(std::string *s, const std::string &search, @@ -106,36 +116,85 @@ std::string UnitTest::print() const { } -std::unique_ptr UnitTest::from_yajl_node(const yajl_val &node) { - size_t num_tests = node->u.object.len; - auto u = std::make_unique(); - - for (int i = 0; i < num_tests; i++) { - const char *key = node->u.object.keys[ i ]; - yajl_val val = node->u.object.values[ i ]; - - u->skipped = false; - if (strcmp(key, "param") == 0) { - u->param = YAJL_GET_STRING(val); - } else if (strcmp(key, "input") == 0) { - u->input = YAJL_GET_STRING(val); - json2bin(&u->input); - } else if (strcmp(key, "resource") == 0) { - u->resource = YAJL_GET_STRING(val); - } else if (strcmp(key, "name") == 0) { - u->name = YAJL_GET_STRING(val); - } else if (strcmp(key, "type") == 0) { - u->type = YAJL_GET_STRING(val); - } else if (strcmp(key, "ret") == 0) { - u->ret = YAJL_GET_INTEGER(val); - } else if (strcmp(key, "output") == 0) { - u->output = std::string(YAJL_GET_STRING(val)); - json2bin(&u->output); - /* - * Converting \\u0000 to \0 due to the following gcc bug: - * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53690 - * - */ +std::unique_ptr UnitTest::from_json_document( + modsecurity_test::json::JsonDocument *document) { + modsecurity_test::json::JsonValue root; + + if (modsecurity_test::json::get(document->get_value(), &root) == false) { + return make_empty_unit_test(); + } + + modsecurity_test::json::JsonType type; + if (modsecurity_test::json::get(root.type(), &type) == false) { + return make_empty_unit_test(); + } + + if (type == modsecurity_test::json::JsonType::Array) { + modsecurity_test::json::JsonArray tests; + if (modsecurity_test::json::get(root.get_array(), &tests) == false) { + return make_empty_unit_test(); + } + + for (auto test_result : tests) { + modsecurity_test::json::JsonValue test_value; + if (modsecurity_test::json::get(std::move(test_result), + &test_value) == false) { + continue; + } + + return from_json_value(test_value); + } + + return make_empty_unit_test(); + } + + return from_json_value(root); +} + +std::unique_ptr UnitTest::from_json_value( + modsecurity_test::json::JsonValue value) { + modsecurity_test::json::JsonObject object; + auto u = make_empty_unit_test(); + + if (modsecurity_test::json::get(value.get_object(), &object) == false) { + return u; + } + + for (auto field_result : object) { + modsecurity_test::json::JsonField field; + std::string_view key; + modsecurity_test::json::JsonValue child; + + if (modsecurity_test::json::get(std::move(field_result), &field) + == false) { + continue; + } + if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { + continue; + } + child = field.value(); + + if (key == "param") { + u->param = modsecurity_test::json::get_string(child); + } else if (key == "input") { + u->input = modsecurity_test::json::get_string(child); + json2bin(&u->input); + } else if (key == "resource") { + u->resource = modsecurity_test::json::get_string(child); + } else if (key == "name") { + u->name = modsecurity_test::json::get_string(child); + } else if (key == "type") { + u->type = modsecurity_test::json::get_string(child); + } else if (key == "ret") { + u->ret = static_cast(modsecurity_test::json::get_integer(child)); + } else if (key == "output") { + u->output = modsecurity_test::json::get_string(child); + json2bin(&u->output); + /* + * Converting \\u0000 to \0 due to the following gcc bug: + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53690 + * + */ } } diff --git a/test/unit/unit_test.h b/test/unit/unit_test.h index ffd776442b..6871a7d758 100644 --- a/test/unit/unit_test.h +++ b/test/unit/unit_test.h @@ -13,13 +13,13 @@ * */ -#include - #include #include #include #include +#include "test/common/json.h" + #ifndef TEST_UNIT_UNIT_TEST_H_ #define TEST_UNIT_UNIT_TEST_H_ @@ -33,7 +33,10 @@ class UnitTestResult { class UnitTest { public: - static std::unique_ptr from_yajl_node(const yajl_val &); + static std::unique_ptr from_json_document( + modsecurity_test::json::JsonDocument *document); + static std::unique_ptr from_json_value( + modsecurity_test::json::JsonValue value); std::string print() const; diff --git a/tools/rules-check/Makefile.am b/tools/rules-check/Makefile.am index 8080411716..fc14a6f986 100644 --- a/tools/rules-check/Makefile.am +++ b/tools/rules-check/Makefile.am @@ -16,8 +16,7 @@ modsec_rules_check_LDADD = \ $(LUA_LDADD) \ $(PCRE_LDADD) \ $(PCRE2_LDADD) \ - $(SSDEEP_LDADD) \ - $(YAJL_LDADD) + $(SSDEEP_LDADD) modsec_rules_check_LDFLAGS = \ $(GEOIP_LDFLAGS) \ @@ -26,11 +25,10 @@ modsec_rules_check_LDFLAGS = \ $(LMDB_LDFLAGS) \ $(LUA_LDFLAGS) \ $(SSDEEP_LDFLAGS) \ - $(YAJL_LDFLAGS) \ $(LIBXML2_LDFLAGS) modsec_rules_check_CPPFLAGS = \ - -I$(top_builddir)/headers \ + -I$(top_srcdir)/headers \ $(GLOBAL_CPPFLAGS) \ $(PCRE_CFLAGS) \ $(PCRE2_CFLAGS) \ @@ -40,4 +38,3 @@ modsec_rules_check_CPPFLAGS = \ MAINTAINERCLEANFILES = \ Makefile.in - From 7681a8e66b2aa38f2aa557bd38abc74262ab3e9e Mon Sep 17 00:00:00 2001 From: Jens Date: Sat, 11 Apr 2026 18:01:01 +0200 Subject: [PATCH 04/17] test error corrected --- src/request_body_processor/json.cc | 4 +++- src/request_body_processor/json.h | 5 +++-- src/utils/json_writer.cc | 2 +- src/utils/json_writer.h | 2 +- test/common/json.h | 34 ++++++++++++++++-------------- test/regression/regression_test.cc | 4 ++-- test/regression/regression_test.h | 4 ++-- test/unit/unit_test.cc | 2 +- test/unit/unit_test.h | 2 +- 9 files changed, 32 insertions(+), 27 deletions(-) diff --git a/src/request_body_processor/json.cc b/src/request_body_processor/json.cc index 57a14a5853..54d10a7d06 100644 --- a/src/request_body_processor/json.cc +++ b/src/request_body_processor/json.cc @@ -51,7 +51,9 @@ bool JSON::init() { } -bool JSON::processChunk(const char *buf, unsigned int size, std::string *err) { +bool JSON::processChunk(const char *buf, unsigned int size, + const std::string *err) { + (void) err; if (buf != nullptr && size > 0) { m_data.append(buf, size); } diff --git a/src/request_body_processor/json.h b/src/request_body_processor/json.h index 49fc109de4..53af13c4a8 100644 --- a/src/request_body_processor/json.h +++ b/src/request_body_processor/json.h @@ -53,10 +53,11 @@ class JSONContainerMap : public JSONContainer { class JSON : public JsonEventSink { public: explicit JSON(Transaction *transaction); - ~JSON(); + ~JSON() override; bool init(); - bool processChunk(const char *buf, unsigned int size, std::string *err); + bool processChunk(const char *buf, unsigned int size, + const std::string *err); bool complete(std::string *err); int addArgument(const std::string& value); diff --git a/src/utils/json_writer.cc b/src/utils/json_writer.cc index 193daa5af9..9d2ddc1032 100644 --- a/src/utils/json_writer.cc +++ b/src/utils/json_writer.cc @@ -89,7 +89,7 @@ const std::string& JsonWriter::str() const { return m_output; } -std::string JsonWriter::to_string() const { +const std::string& JsonWriter::to_string() const { return m_output; } diff --git a/src/utils/json_writer.h b/src/utils/json_writer.h index 7f900bd7aa..04ce1df7df 100644 --- a/src/utils/json_writer.h +++ b/src/utils/json_writer.h @@ -41,7 +41,7 @@ class JsonWriter { void null(); const std::string& str() const; - std::string to_string() const; + const std::string& to_string() const; private: enum class ContainerType { diff --git a/test/common/json.h b/test/common/json.h index 53f4feeb3b..f98d8b07c5 100644 --- a/test/common/json.h +++ b/test/common/json.h @@ -36,12 +36,14 @@ enum class JsonType { Unknown }; +using JsonNode = jsoncons::ojson; + class JsonValue; class JsonField { public: JsonField() = default; - JsonField(std::string_view key, const jsoncons::json *value) + JsonField(std::string_view key, const JsonNode *value) : m_key(key), m_value(value) { } @@ -57,14 +59,14 @@ class JsonField { private: std::string_view m_key; - const jsoncons::json *m_value{nullptr}; + const JsonNode *m_value{nullptr}; }; class JsonArray { public: class iterator { public: - explicit iterator(jsoncons::json::const_array_iterator iterator) + explicit iterator(JsonNode::const_array_iterator iterator) : m_iterator(iterator) { } JsonValue operator*() const; @@ -79,11 +81,11 @@ class JsonArray { } private: - jsoncons::json::const_array_iterator m_iterator; + JsonNode::const_array_iterator m_iterator; }; JsonArray() = default; - explicit JsonArray(const jsoncons::json *value) : m_value(value) { } + explicit JsonArray(const JsonNode *value) : m_value(value) { } bool valid() const { return m_value != nullptr && m_value->is_array(); @@ -98,14 +100,14 @@ class JsonArray { } private: - const jsoncons::json *m_value{nullptr}; + const JsonNode *m_value{nullptr}; }; class JsonObject { public: class iterator { public: - explicit iterator(jsoncons::json::const_object_iterator iterator) + explicit iterator(JsonNode::const_object_iterator iterator) : m_iterator(iterator) { } JsonField operator*() const { @@ -124,11 +126,11 @@ class JsonObject { } private: - jsoncons::json::const_object_iterator m_iterator; + JsonNode::const_object_iterator m_iterator; }; JsonObject() = default; - explicit JsonObject(const jsoncons::json *value) : m_value(value) { } + explicit JsonObject(const JsonNode *value) : m_value(value) { } bool valid() const { return m_value != nullptr && m_value->is_object(); @@ -143,13 +145,13 @@ class JsonObject { } private: - const jsoncons::json *m_value{nullptr}; + const JsonNode *m_value{nullptr}; }; class JsonValue { public: JsonValue() = default; - explicit JsonValue(const jsoncons::json *value) : m_value(value) { } + explicit JsonValue(const JsonNode *value) : m_value(value) { } bool valid() const { return m_value != nullptr; @@ -185,12 +187,12 @@ class JsonValue { return JsonType::Number; } - const jsoncons::json *raw() const { + const JsonNode *raw() const { return m_value; } private: - const jsoncons::json *m_value{nullptr}; + const JsonNode *m_value{nullptr}; }; inline JsonValue JsonField::value() const { @@ -213,7 +215,7 @@ class JsonDocument { bool parse(const std::string &input, std::string *error = nullptr) { try { - m_root = jsoncons::json::parse(input); + m_root = JsonNode::parse(input); return true; } catch (const std::exception &exception) { if (error != nullptr) { @@ -224,7 +226,7 @@ class JsonDocument { } private: - jsoncons::json m_root; + JsonNode m_root; }; inline bool get(JsonArray value, JsonArray *target, @@ -237,7 +239,7 @@ inline bool get(JsonArray value, JsonArray *target, return true; } -inline bool get(JsonField value, JsonField *target, +inline bool get(const JsonField &value, JsonField *target, std::string *error = nullptr) { (void) error; if (!value.valid()) { diff --git a/test/regression/regression_test.cc b/test/regression/regression_test.cc index 809ad34bf5..d0661d7ff0 100644 --- a/test/regression/regression_test.cc +++ b/test/regression/regression_test.cc @@ -168,7 +168,7 @@ std::string RegressionTest::print() { } std::unique_ptr RegressionTest::from_json_document( - modsecurity_test::json::JsonDocument *document) { + const modsecurity_test::json::JsonDocument *document) { modsecurity_test::json::JsonValue root; if (modsecurity_test::json::get(document->get_value(), &root) == false) { @@ -461,7 +461,7 @@ void RegressionTest::update_content_lengths() { } std::unique_ptr RegressionTests::from_json_document( - modsecurity_test::json::JsonDocument *document) { + const modsecurity_test::json::JsonDocument *document) { modsecurity_test::json::JsonValue root; if (modsecurity_test::json::get(document->get_value(), &root) == false) { diff --git a/test/regression/regression_test.h b/test/regression/regression_test.h index 88cd66f286..1ff13ac10d 100644 --- a/test/regression/regression_test.h +++ b/test/regression/regression_test.h @@ -33,7 +33,7 @@ namespace modsecurity_test { class RegressionTest { public: static std::unique_ptr from_json_document( - modsecurity_test::json::JsonDocument *document); + const modsecurity_test::json::JsonDocument *document); static std::unique_ptr from_json_value( modsecurity_test::json::JsonValue value); @@ -94,7 +94,7 @@ class RegressionTest { class RegressionTests { public: static std::unique_ptr from_json_document( - modsecurity_test::json::JsonDocument *document); + const modsecurity_test::json::JsonDocument *document); static std::unique_ptr from_json_value( modsecurity_test::json::JsonValue value); void update_content_lengths(); diff --git a/test/unit/unit_test.cc b/test/unit/unit_test.cc index 22519e264b..8cfbb18738 100644 --- a/test/unit/unit_test.cc +++ b/test/unit/unit_test.cc @@ -117,7 +117,7 @@ std::string UnitTest::print() const { std::unique_ptr UnitTest::from_json_document( - modsecurity_test::json::JsonDocument *document) { + const modsecurity_test::json::JsonDocument *document) { modsecurity_test::json::JsonValue root; if (modsecurity_test::json::get(document->get_value(), &root) == false) { diff --git a/test/unit/unit_test.h b/test/unit/unit_test.h index 6871a7d758..7eea22cb11 100644 --- a/test/unit/unit_test.h +++ b/test/unit/unit_test.h @@ -34,7 +34,7 @@ class UnitTestResult { class UnitTest { public: static std::unique_ptr from_json_document( - modsecurity_test::json::JsonDocument *document); + const modsecurity_test::json::JsonDocument *document); static std::unique_ptr from_json_value( modsecurity_test::json::JsonValue value); From 82ca699a9aa220b0f2e5c957b01560d7f408e965 Mon Sep 17 00:00:00 2001 From: Jens Date: Sat, 11 Apr 2026 18:37:54 +0200 Subject: [PATCH 05/17] add analysis --- analysis/jsoncons/Examples.md | 59 ++++ analysis/jsoncons/Pages/index.md | 51 ++++ analysis/jsoncons/Reference.md | 40 +++ analysis/jsoncons/SUMMARY.md | 251 ++++++++++++++++++ analysis/jsoncons/Tutorials/Basics.md | 51 ++++ .../jsoncons/Tutorials/Unicode support.md | 35 +++ analysis/jsoncons/build.md | 43 +++ .../jsoncons/ref/bson/basic_bson_cursor.md | 49 ++++ .../jsoncons/ref/bson/basic_bson_encoder.md | 55 ++++ analysis/jsoncons/ref/bson/bson.md | 63 +++++ analysis/jsoncons/ref/bson/bson_options.md | 54 ++++ analysis/jsoncons/ref/bson/decode_bson.md | 57 ++++ analysis/jsoncons/ref/bson/encode_bson.md | 51 ++++ .../jsoncons/ref/cbor/basic_cbor_cursor.md | 55 ++++ .../jsoncons/ref/cbor/basic_cbor_encoder.md | 57 ++++ analysis/jsoncons/ref/cbor/cbor.md | 63 +++++ analysis/jsoncons/ref/cbor/cbor_options.md | 53 ++++ analysis/jsoncons/ref/cbor/decode_cbor.md | 55 ++++ analysis/jsoncons/ref/cbor/encode_cbor.md | 59 ++++ .../jsoncons/ref/corelib/allocator_set.md | 47 ++++ .../ref/corelib/basic_default_json_visitor.md | 45 ++++ analysis/jsoncons/ref/corelib/basic_json.md | 47 ++++ .../jsoncons/ref/corelib/basic_json_cursor.md | 49 ++++ .../ref/corelib/basic_json_encoder.md | 47 ++++ .../jsoncons/ref/corelib/basic_json_filter.md | 53 ++++ .../ref/corelib/basic_json_options.md | 49 ++++ .../jsoncons/ref/corelib/basic_json_parser.md | 49 ++++ .../jsoncons/ref/corelib/basic_json_reader.md | 47 ++++ .../ref/corelib/basic_json_visitor.md | 45 ++++ .../jsoncons/ref/corelib/basic_staj_event.md | 45 ++++ .../ref/corelib/bigint_chars_format.md | 49 ++++ .../ref/corelib/bignum_format_kind.md | 49 ++++ analysis/jsoncons/ref/corelib/byte_string.md | 47 ++++ .../jsoncons/ref/corelib/byte_string_arg.md | 53 ++++ .../jsoncons/ref/corelib/byte_string_arg_t.md | 48 ++++ .../ref/corelib/byte_string_chars_format.md | 49 ++++ .../jsoncons/ref/corelib/byte_string_view.md | 47 ++++ analysis/jsoncons/ref/corelib/conv_error.md | 49 ++++ .../jsoncons/ref/corelib/conversion_error.md | 44 +++ .../jsoncons/ref/corelib/conversion_result.md | 45 ++++ analysis/jsoncons/ref/corelib/data-model.md | 49 ++++ analysis/jsoncons/ref/corelib/decode_json.md | 55 ++++ analysis/jsoncons/ref/corelib/encode_json.md | 57 ++++ analysis/jsoncons/ref/corelib/err_handler.md | 49 ++++ .../ref/corelib/float_chars_format.md | 48 ++++ analysis/jsoncons/ref/corelib/half_arg.md | 47 ++++ analysis/jsoncons/ref/corelib/half_arg_t.md | 45 ++++ analysis/jsoncons/ref/corelib/indenting.md | 55 ++++ analysis/jsoncons/ref/corelib/json.md | 63 +++++ .../jsoncons/ref/corelib/json/allocators.md | 52 ++++ .../jsoncons/ref/corelib/json/array_range.md | 59 ++++ analysis/jsoncons/ref/corelib/json/as.md | 59 ++++ analysis/jsoncons/ref/corelib/json/at.md | 57 ++++ .../jsoncons/ref/corelib/json/constructor.md | 61 +++++ .../jsoncons/ref/corelib/json/destructor.md | 59 ++++ analysis/jsoncons/ref/corelib/json/dump.md | 63 +++++ analysis/jsoncons/ref/corelib/json/emplace.md | 59 ++++ .../jsoncons/ref/corelib/json/emplace_back.md | 59 ++++ analysis/jsoncons/ref/corelib/json/erase.md | 63 +++++ .../jsoncons/ref/corelib/json/get_value_or.md | 63 +++++ analysis/jsoncons/ref/corelib/json/insert.md | 59 ++++ .../ref/corelib/json/insert_or_assign.md | 59 ++++ analysis/jsoncons/ref/corelib/json/is.md | 53 ++++ .../jsoncons/ref/corelib/json/key_value.md | 59 ++++ .../jsoncons/ref/corelib/json/make_array.md | 59 ++++ analysis/jsoncons/ref/corelib/json/merge.md | 59 ++++ .../ref/corelib/json/merge_or_update.md | 59 ++++ .../jsoncons/ref/corelib/json/object_range.md | 63 +++++ .../jsoncons/ref/corelib/json/operator=.md | 59 ++++ .../jsoncons/ref/corelib/json/operator_at.md | 59 ++++ analysis/jsoncons/ref/corelib/json/parse.md | 63 +++++ .../jsoncons/ref/corelib/json/push_back.md | 59 ++++ analysis/jsoncons/ref/corelib/json/range.md | 61 +++++ .../jsoncons/ref/corelib/json/try_emplace.md | 59 ++++ .../jsoncons/ref/corelib/json_array_arg.md | 47 ++++ .../jsoncons/ref/corelib/json_array_arg_t.md | 46 ++++ analysis/jsoncons/ref/corelib/json_decoder.md | 47 ++++ analysis/jsoncons/ref/corelib/json_error.md | 47 ++++ .../jsoncons/ref/corelib/json_object_arg.md | 47 ++++ .../jsoncons/ref/corelib/json_object_arg_t.md | 48 ++++ analysis/jsoncons/ref/corelib/json_type.md | 47 ++++ .../json_type_traits/Eigen-Matrix-example.md | 46 ++++ .../built-in-specializations.md | 59 ++++ .../custom-specializations.md | 49 ++++ .../json_type_traits/json_type_traits.md | 53 ++++ .../jsoncons/ref/corelib/line_split_kind.md | 51 ++++ analysis/jsoncons/ref/corelib/ojson.md | 47 ++++ analysis/jsoncons/ref/corelib/read_error.md | 45 ++++ analysis/jsoncons/ref/corelib/read_result.md | 45 ++++ analysis/jsoncons/ref/corelib/reflect.md | 43 +++ .../corelib/reflect/Eigen-Matrix-example.md | 52 ++++ .../ref/corelib/reflect/json_conv_traits.md | 55 ++++ .../ref/corelib/reflect/reflect-traits-gen.md | 57 ++++ .../uses-allocator-construction-example.md | 52 ++++ .../ref/corelib/rename_object_key_filter.md | 49 ++++ analysis/jsoncons/ref/corelib/semantic_tag.md | 47 ++++ analysis/jsoncons/ref/corelib/ser_context.md | 47 ++++ analysis/jsoncons/ref/corelib/ser_error.md | 49 ++++ .../jsoncons/ref/corelib/spaces_option.md | 49 ++++ .../ref/corelib/staj_array_iterator.md | 49 ++++ analysis/jsoncons/ref/corelib/staj_cursor.md | 45 ++++ .../jsoncons/ref/corelib/staj_event_type.md | 47 ++++ .../ref/corelib/staj_object_iterator.md | 47 ++++ .../jsoncons/ref/corelib/utility/bigint.md | 49 ++++ analysis/jsoncons/ref/corelib/utility/uri.md | 63 +++++ analysis/jsoncons/ref/corelib/wjson.md | 47 ++++ analysis/jsoncons/ref/corelib/wojson.md | 47 ++++ analysis/jsoncons/ref/corelib/write_result.md | 45 ++++ analysis/jsoncons/ref/csv/basic_csv_cursor.md | 51 ++++ .../jsoncons/ref/csv/basic_csv_encoder.md | 53 ++++ .../jsoncons/ref/csv/basic_csv_options.md | 53 ++++ analysis/jsoncons/ref/csv/basic_csv_reader.md | 51 ++++ analysis/jsoncons/ref/csv/csv.md | 63 +++++ analysis/jsoncons/ref/csv/csv_mapping_kind.md | 59 ++++ analysis/jsoncons/ref/csv/decode_csv.md | 57 ++++ analysis/jsoncons/ref/csv/encode_csv.md | 59 ++++ analysis/jsoncons/ref/csv/quote_style_kind.md | 52 ++++ analysis/jsoncons/ref/deprecated.md | 39 +++ analysis/jsoncons/ref/jmespath/jmespath.md | 59 ++++ .../jsoncons/ref/jmespath/jmespath_errc.md | 55 ++++ .../jsoncons/ref/jmespath/jmespath_error.md | 47 ++++ .../ref/jmespath/jmespath_expression.md | 51 ++++ .../jsoncons/ref/jmespath/make_expression.md | 47 ++++ analysis/jsoncons/ref/jmespath/search.md | 51 ++++ .../jsoncons/ref/jsonpatch/apply_patch.md | 55 ++++ analysis/jsoncons/ref/jsonpatch/from_diff.md | 53 ++++ analysis/jsoncons/ref/jsonpatch/jsonpatch.md | 51 ++++ .../jsoncons/ref/jsonpatch/jsonpatch_errc.md | 48 ++++ .../jsoncons/ref/jsonpatch/jsonpatch_error.md | 51 ++++ .../ref/jsonpath/basic_json_location.md | 49 ++++ .../ref/jsonpath/basic_path_element.md | 47 ++++ .../jsoncons/ref/jsonpath/basic_path_node.md | 47 ++++ analysis/jsoncons/ref/jsonpath/flatten.md | 51 ++++ .../jsoncons/ref/jsonpath/functions/abs.md | 51 ++++ .../jsoncons/ref/jsonpath/functions/avg.md | 57 ++++ .../jsoncons/ref/jsonpath/functions/ceil.md | 57 ++++ .../ref/jsonpath/functions/contains.md | 55 ++++ .../ref/jsonpath/functions/ends_with.md | 49 ++++ .../jsoncons/ref/jsonpath/functions/floor.md | 57 ++++ .../jsoncons/ref/jsonpath/functions/keys.md | 49 ++++ .../jsoncons/ref/jsonpath/functions/length.md | 53 ++++ .../jsoncons/ref/jsonpath/functions/max.md | 47 ++++ .../jsoncons/ref/jsonpath/functions/min.md | 47 ++++ .../jsoncons/ref/jsonpath/functions/prod.md | 49 ++++ .../ref/jsonpath/functions/starts_with.md | 49 ++++ .../jsoncons/ref/jsonpath/functions/sum.md | 55 ++++ .../ref/jsonpath/functions/to_number.md | 49 ++++ .../ref/jsonpath/functions/tokenize.md | 57 ++++ analysis/jsoncons/ref/jsonpath/get.md | 47 ++++ analysis/jsoncons/ref/jsonpath/grammar.md | 39 +++ analysis/jsoncons/ref/jsonpath/json_query.md | 59 ++++ .../jsoncons/ref/jsonpath/json_replace.md | 57 ++++ .../ref/jsonpath/jsoncons-jsonpath-abnf.md | 39 +++ analysis/jsoncons/ref/jsonpath/jsonpath.md | 59 ++++ .../jsoncons/ref/jsonpath/jsonpath_error.md | 47 ++++ .../ref/jsonpath/jsonpath_expression.md | 53 ++++ .../jsonpath/jsonpath_expression/evaluate.md | 57 ++++ .../jsonpath/jsonpath_expression/select.md | 57 ++++ .../jsonpath_expression/select_paths.md | 57 ++++ .../jsonpath/jsonpath_expression/update.md | 51 ++++ .../jsoncons/ref/jsonpath/jsonpath_grammer.md | 39 +++ .../jsoncons/ref/jsonpath/make_expression.md | 61 +++++ .../jsoncons/ref/jsonpath/path_node_kind.md | 43 +++ analysis/jsoncons/ref/jsonpath/remove.md | 57 ++++ analysis/jsoncons/ref/jsonpath/replace.md | 53 ++++ .../jsoncons/ref/jsonpath/result_options.md | 59 ++++ analysis/jsoncons/ref/jsonpointer/add.md | 50 ++++ .../jsoncons/ref/jsonpointer/add_if_absent.md | 54 ++++ .../ref/jsonpointer/basic_json_pointer.md | 50 ++++ analysis/jsoncons/ref/jsonpointer/contains.md | 50 ++++ analysis/jsoncons/ref/jsonpointer/flatten.md | 54 ++++ analysis/jsoncons/ref/jsonpointer/get.md | 50 ++++ .../jsoncons/ref/jsonpointer/jsonpointer.md | 50 ++++ .../ref/jsonpointer/jsonpointer_errc.md | 45 ++++ .../ref/jsonpointer/jsonpointer_error.md | 51 ++++ analysis/jsoncons/ref/jsonpointer/remove.md | 52 ++++ analysis/jsoncons/ref/jsonpointer/replace.md | 50 ++++ .../ref/jsonpointer/unflatten_options.md | 53 ++++ .../ref/jsonschema/custom-error-messages.md | 51 ++++ .../ref/jsonschema/evaluation_options.md | 49 ++++ .../jsoncons/ref/jsonschema/json_schema.md | 61 +++++ .../ref/jsonschema/json_schema/is_valid.md | 51 ++++ .../ref/jsonschema/json_schema/validate.md | 64 +++++ .../ref/jsonschema/json_schema/walk.md | 61 +++++ .../jsoncons/ref/jsonschema/json_validator.md | 53 ++++ .../jsoncons/ref/jsonschema/jsonschema.md | 57 ++++ .../ref/jsonschema/make_json_schema.md | 63 +++++ .../jsoncons/ref/jsonschema/schema_error.md | 47 ++++ .../jsoncons/ref/jsonschema/schema_version.md | 62 +++++ .../ref/jsonschema/validation_error.md | 46 ++++ .../ref/jsonschema/validation_message.md | 63 +++++ .../ref/jsonschema/validation_output.md | 46 ++++ .../jsoncons/ref/jsonschema/walk_result.md | 59 ++++ .../ref/mergepatch/apply_merge_patch.md | 51 ++++ analysis/jsoncons/ref/mergepatch/from_diff.md | 51 ++++ .../jsoncons/ref/mergepatch/mergepatch.md | 51 ++++ .../ref/msgpack/basic_msgpack_cursor.md | 45 ++++ .../ref/msgpack/basic_msgpack_encoder.md | 47 ++++ .../jsoncons/ref/msgpack/decode_msgpack.md | 57 ++++ .../jsoncons/ref/msgpack/encode_msgpack.md | 61 +++++ analysis/jsoncons/ref/msgpack/msgpack.md | 63 +++++ .../jsoncons/ref/msgpack/msgpack_options.md | 46 ++++ analysis/jsoncons/ref/toon/decode_toon.md | 56 ++++ analysis/jsoncons/ref/toon/encode_toon.md | 55 ++++ .../jsoncons/ref/toon/key_folding_kind.md | 42 +++ analysis/jsoncons/ref/toon/toon.md | 57 ++++ .../jsoncons/ref/toon/toon_delimiter_kind.md | 48 ++++ analysis/jsoncons/ref/toon/toon_options.md | 47 ++++ .../ref/ubjson/basic_ubjson_cursor.md | 45 ++++ .../ref/ubjson/basic_ubjson_encoder.md | 47 ++++ analysis/jsoncons/ref/ubjson/decode_ubjson.md | 55 ++++ analysis/jsoncons/ref/ubjson/encode_ubjson.md | 57 ++++ analysis/jsoncons/ref/ubjson/ubjson.md | 63 +++++ .../jsoncons/ref/ubjson/ubjson_options.md | 45 ++++ analysis/simdjson/SUMMARY.md | 44 +++ analysis/simdjson/basics.md | 61 +++++ analysis/simdjson/basics_doxygen.md | 43 +++ analysis/simdjson/builder.md | 62 +++++ analysis/simdjson/compile_time.md | 60 +++++ analysis/simdjson/compile_time_accessors.md | 61 +++++ analysis/simdjson/dom.md | 60 +++++ analysis/simdjson/implementation-selection.md | 43 +++ analysis/simdjson/iterate_many.md | 59 ++++ analysis/simdjson/ondemand_design.md | 43 +++ analysis/simdjson/parse_many.md | 59 ++++ analysis/simdjson/performance.md | 62 +++++ analysis/simdjson/tape.md | 58 ++++ 227 files changed, 12079 insertions(+) create mode 100644 analysis/jsoncons/Examples.md create mode 100644 analysis/jsoncons/Pages/index.md create mode 100644 analysis/jsoncons/Reference.md create mode 100644 analysis/jsoncons/SUMMARY.md create mode 100644 analysis/jsoncons/Tutorials/Basics.md create mode 100644 analysis/jsoncons/Tutorials/Unicode support.md create mode 100644 analysis/jsoncons/build.md create mode 100644 analysis/jsoncons/ref/bson/basic_bson_cursor.md create mode 100644 analysis/jsoncons/ref/bson/basic_bson_encoder.md create mode 100644 analysis/jsoncons/ref/bson/bson.md create mode 100644 analysis/jsoncons/ref/bson/bson_options.md create mode 100644 analysis/jsoncons/ref/bson/decode_bson.md create mode 100644 analysis/jsoncons/ref/bson/encode_bson.md create mode 100644 analysis/jsoncons/ref/cbor/basic_cbor_cursor.md create mode 100644 analysis/jsoncons/ref/cbor/basic_cbor_encoder.md create mode 100644 analysis/jsoncons/ref/cbor/cbor.md create mode 100644 analysis/jsoncons/ref/cbor/cbor_options.md create mode 100644 analysis/jsoncons/ref/cbor/decode_cbor.md create mode 100644 analysis/jsoncons/ref/cbor/encode_cbor.md create mode 100644 analysis/jsoncons/ref/corelib/allocator_set.md create mode 100644 analysis/jsoncons/ref/corelib/basic_default_json_visitor.md create mode 100644 analysis/jsoncons/ref/corelib/basic_json.md create mode 100644 analysis/jsoncons/ref/corelib/basic_json_cursor.md create mode 100644 analysis/jsoncons/ref/corelib/basic_json_encoder.md create mode 100644 analysis/jsoncons/ref/corelib/basic_json_filter.md create mode 100644 analysis/jsoncons/ref/corelib/basic_json_options.md create mode 100644 analysis/jsoncons/ref/corelib/basic_json_parser.md create mode 100644 analysis/jsoncons/ref/corelib/basic_json_reader.md create mode 100644 analysis/jsoncons/ref/corelib/basic_json_visitor.md create mode 100644 analysis/jsoncons/ref/corelib/basic_staj_event.md create mode 100644 analysis/jsoncons/ref/corelib/bigint_chars_format.md create mode 100644 analysis/jsoncons/ref/corelib/bignum_format_kind.md create mode 100644 analysis/jsoncons/ref/corelib/byte_string.md create mode 100644 analysis/jsoncons/ref/corelib/byte_string_arg.md create mode 100644 analysis/jsoncons/ref/corelib/byte_string_arg_t.md create mode 100644 analysis/jsoncons/ref/corelib/byte_string_chars_format.md create mode 100644 analysis/jsoncons/ref/corelib/byte_string_view.md create mode 100644 analysis/jsoncons/ref/corelib/conv_error.md create mode 100644 analysis/jsoncons/ref/corelib/conversion_error.md create mode 100644 analysis/jsoncons/ref/corelib/conversion_result.md create mode 100644 analysis/jsoncons/ref/corelib/data-model.md create mode 100644 analysis/jsoncons/ref/corelib/decode_json.md create mode 100644 analysis/jsoncons/ref/corelib/encode_json.md create mode 100644 analysis/jsoncons/ref/corelib/err_handler.md create mode 100644 analysis/jsoncons/ref/corelib/float_chars_format.md create mode 100644 analysis/jsoncons/ref/corelib/half_arg.md create mode 100644 analysis/jsoncons/ref/corelib/half_arg_t.md create mode 100644 analysis/jsoncons/ref/corelib/indenting.md create mode 100644 analysis/jsoncons/ref/corelib/json.md create mode 100644 analysis/jsoncons/ref/corelib/json/allocators.md create mode 100644 analysis/jsoncons/ref/corelib/json/array_range.md create mode 100644 analysis/jsoncons/ref/corelib/json/as.md create mode 100644 analysis/jsoncons/ref/corelib/json/at.md create mode 100644 analysis/jsoncons/ref/corelib/json/constructor.md create mode 100644 analysis/jsoncons/ref/corelib/json/destructor.md create mode 100644 analysis/jsoncons/ref/corelib/json/dump.md create mode 100644 analysis/jsoncons/ref/corelib/json/emplace.md create mode 100644 analysis/jsoncons/ref/corelib/json/emplace_back.md create mode 100644 analysis/jsoncons/ref/corelib/json/erase.md create mode 100644 analysis/jsoncons/ref/corelib/json/get_value_or.md create mode 100644 analysis/jsoncons/ref/corelib/json/insert.md create mode 100644 analysis/jsoncons/ref/corelib/json/insert_or_assign.md create mode 100644 analysis/jsoncons/ref/corelib/json/is.md create mode 100644 analysis/jsoncons/ref/corelib/json/key_value.md create mode 100644 analysis/jsoncons/ref/corelib/json/make_array.md create mode 100644 analysis/jsoncons/ref/corelib/json/merge.md create mode 100644 analysis/jsoncons/ref/corelib/json/merge_or_update.md create mode 100644 analysis/jsoncons/ref/corelib/json/object_range.md create mode 100644 analysis/jsoncons/ref/corelib/json/operator=.md create mode 100644 analysis/jsoncons/ref/corelib/json/operator_at.md create mode 100644 analysis/jsoncons/ref/corelib/json/parse.md create mode 100644 analysis/jsoncons/ref/corelib/json/push_back.md create mode 100644 analysis/jsoncons/ref/corelib/json/range.md create mode 100644 analysis/jsoncons/ref/corelib/json/try_emplace.md create mode 100644 analysis/jsoncons/ref/corelib/json_array_arg.md create mode 100644 analysis/jsoncons/ref/corelib/json_array_arg_t.md create mode 100644 analysis/jsoncons/ref/corelib/json_decoder.md create mode 100644 analysis/jsoncons/ref/corelib/json_error.md create mode 100644 analysis/jsoncons/ref/corelib/json_object_arg.md create mode 100644 analysis/jsoncons/ref/corelib/json_object_arg_t.md create mode 100644 analysis/jsoncons/ref/corelib/json_type.md create mode 100644 analysis/jsoncons/ref/corelib/json_type_traits/Eigen-Matrix-example.md create mode 100644 analysis/jsoncons/ref/corelib/json_type_traits/built-in-specializations.md create mode 100644 analysis/jsoncons/ref/corelib/json_type_traits/custom-specializations.md create mode 100644 analysis/jsoncons/ref/corelib/json_type_traits/json_type_traits.md create mode 100644 analysis/jsoncons/ref/corelib/line_split_kind.md create mode 100644 analysis/jsoncons/ref/corelib/ojson.md create mode 100644 analysis/jsoncons/ref/corelib/read_error.md create mode 100644 analysis/jsoncons/ref/corelib/read_result.md create mode 100644 analysis/jsoncons/ref/corelib/reflect.md create mode 100644 analysis/jsoncons/ref/corelib/reflect/Eigen-Matrix-example.md create mode 100644 analysis/jsoncons/ref/corelib/reflect/json_conv_traits.md create mode 100644 analysis/jsoncons/ref/corelib/reflect/reflect-traits-gen.md create mode 100644 analysis/jsoncons/ref/corelib/reflect/uses-allocator-construction-example.md create mode 100644 analysis/jsoncons/ref/corelib/rename_object_key_filter.md create mode 100644 analysis/jsoncons/ref/corelib/semantic_tag.md create mode 100644 analysis/jsoncons/ref/corelib/ser_context.md create mode 100644 analysis/jsoncons/ref/corelib/ser_error.md create mode 100644 analysis/jsoncons/ref/corelib/spaces_option.md create mode 100644 analysis/jsoncons/ref/corelib/staj_array_iterator.md create mode 100644 analysis/jsoncons/ref/corelib/staj_cursor.md create mode 100644 analysis/jsoncons/ref/corelib/staj_event_type.md create mode 100644 analysis/jsoncons/ref/corelib/staj_object_iterator.md create mode 100644 analysis/jsoncons/ref/corelib/utility/bigint.md create mode 100644 analysis/jsoncons/ref/corelib/utility/uri.md create mode 100644 analysis/jsoncons/ref/corelib/wjson.md create mode 100644 analysis/jsoncons/ref/corelib/wojson.md create mode 100644 analysis/jsoncons/ref/corelib/write_result.md create mode 100644 analysis/jsoncons/ref/csv/basic_csv_cursor.md create mode 100644 analysis/jsoncons/ref/csv/basic_csv_encoder.md create mode 100644 analysis/jsoncons/ref/csv/basic_csv_options.md create mode 100644 analysis/jsoncons/ref/csv/basic_csv_reader.md create mode 100644 analysis/jsoncons/ref/csv/csv.md create mode 100644 analysis/jsoncons/ref/csv/csv_mapping_kind.md create mode 100644 analysis/jsoncons/ref/csv/decode_csv.md create mode 100644 analysis/jsoncons/ref/csv/encode_csv.md create mode 100644 analysis/jsoncons/ref/csv/quote_style_kind.md create mode 100644 analysis/jsoncons/ref/deprecated.md create mode 100644 analysis/jsoncons/ref/jmespath/jmespath.md create mode 100644 analysis/jsoncons/ref/jmespath/jmespath_errc.md create mode 100644 analysis/jsoncons/ref/jmespath/jmespath_error.md create mode 100644 analysis/jsoncons/ref/jmespath/jmespath_expression.md create mode 100644 analysis/jsoncons/ref/jmespath/make_expression.md create mode 100644 analysis/jsoncons/ref/jmespath/search.md create mode 100644 analysis/jsoncons/ref/jsonpatch/apply_patch.md create mode 100644 analysis/jsoncons/ref/jsonpatch/from_diff.md create mode 100644 analysis/jsoncons/ref/jsonpatch/jsonpatch.md create mode 100644 analysis/jsoncons/ref/jsonpatch/jsonpatch_errc.md create mode 100644 analysis/jsoncons/ref/jsonpatch/jsonpatch_error.md create mode 100644 analysis/jsoncons/ref/jsonpath/basic_json_location.md create mode 100644 analysis/jsoncons/ref/jsonpath/basic_path_element.md create mode 100644 analysis/jsoncons/ref/jsonpath/basic_path_node.md create mode 100644 analysis/jsoncons/ref/jsonpath/flatten.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/abs.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/avg.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/ceil.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/contains.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/ends_with.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/floor.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/keys.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/length.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/max.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/min.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/prod.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/starts_with.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/sum.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/to_number.md create mode 100644 analysis/jsoncons/ref/jsonpath/functions/tokenize.md create mode 100644 analysis/jsoncons/ref/jsonpath/get.md create mode 100644 analysis/jsoncons/ref/jsonpath/grammar.md create mode 100644 analysis/jsoncons/ref/jsonpath/json_query.md create mode 100644 analysis/jsoncons/ref/jsonpath/json_replace.md create mode 100644 analysis/jsoncons/ref/jsonpath/jsoncons-jsonpath-abnf.md create mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath.md create mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_error.md create mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_expression.md create mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_expression/evaluate.md create mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_expression/select.md create mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_expression/select_paths.md create mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_expression/update.md create mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_grammer.md create mode 100644 analysis/jsoncons/ref/jsonpath/make_expression.md create mode 100644 analysis/jsoncons/ref/jsonpath/path_node_kind.md create mode 100644 analysis/jsoncons/ref/jsonpath/remove.md create mode 100644 analysis/jsoncons/ref/jsonpath/replace.md create mode 100644 analysis/jsoncons/ref/jsonpath/result_options.md create mode 100644 analysis/jsoncons/ref/jsonpointer/add.md create mode 100644 analysis/jsoncons/ref/jsonpointer/add_if_absent.md create mode 100644 analysis/jsoncons/ref/jsonpointer/basic_json_pointer.md create mode 100644 analysis/jsoncons/ref/jsonpointer/contains.md create mode 100644 analysis/jsoncons/ref/jsonpointer/flatten.md create mode 100644 analysis/jsoncons/ref/jsonpointer/get.md create mode 100644 analysis/jsoncons/ref/jsonpointer/jsonpointer.md create mode 100644 analysis/jsoncons/ref/jsonpointer/jsonpointer_errc.md create mode 100644 analysis/jsoncons/ref/jsonpointer/jsonpointer_error.md create mode 100644 analysis/jsoncons/ref/jsonpointer/remove.md create mode 100644 analysis/jsoncons/ref/jsonpointer/replace.md create mode 100644 analysis/jsoncons/ref/jsonpointer/unflatten_options.md create mode 100644 analysis/jsoncons/ref/jsonschema/custom-error-messages.md create mode 100644 analysis/jsoncons/ref/jsonschema/evaluation_options.md create mode 100644 analysis/jsoncons/ref/jsonschema/json_schema.md create mode 100644 analysis/jsoncons/ref/jsonschema/json_schema/is_valid.md create mode 100644 analysis/jsoncons/ref/jsonschema/json_schema/validate.md create mode 100644 analysis/jsoncons/ref/jsonschema/json_schema/walk.md create mode 100644 analysis/jsoncons/ref/jsonschema/json_validator.md create mode 100644 analysis/jsoncons/ref/jsonschema/jsonschema.md create mode 100644 analysis/jsoncons/ref/jsonschema/make_json_schema.md create mode 100644 analysis/jsoncons/ref/jsonschema/schema_error.md create mode 100644 analysis/jsoncons/ref/jsonschema/schema_version.md create mode 100644 analysis/jsoncons/ref/jsonschema/validation_error.md create mode 100644 analysis/jsoncons/ref/jsonschema/validation_message.md create mode 100644 analysis/jsoncons/ref/jsonschema/validation_output.md create mode 100644 analysis/jsoncons/ref/jsonschema/walk_result.md create mode 100644 analysis/jsoncons/ref/mergepatch/apply_merge_patch.md create mode 100644 analysis/jsoncons/ref/mergepatch/from_diff.md create mode 100644 analysis/jsoncons/ref/mergepatch/mergepatch.md create mode 100644 analysis/jsoncons/ref/msgpack/basic_msgpack_cursor.md create mode 100644 analysis/jsoncons/ref/msgpack/basic_msgpack_encoder.md create mode 100644 analysis/jsoncons/ref/msgpack/decode_msgpack.md create mode 100644 analysis/jsoncons/ref/msgpack/encode_msgpack.md create mode 100644 analysis/jsoncons/ref/msgpack/msgpack.md create mode 100644 analysis/jsoncons/ref/msgpack/msgpack_options.md create mode 100644 analysis/jsoncons/ref/toon/decode_toon.md create mode 100644 analysis/jsoncons/ref/toon/encode_toon.md create mode 100644 analysis/jsoncons/ref/toon/key_folding_kind.md create mode 100644 analysis/jsoncons/ref/toon/toon.md create mode 100644 analysis/jsoncons/ref/toon/toon_delimiter_kind.md create mode 100644 analysis/jsoncons/ref/toon/toon_options.md create mode 100644 analysis/jsoncons/ref/ubjson/basic_ubjson_cursor.md create mode 100644 analysis/jsoncons/ref/ubjson/basic_ubjson_encoder.md create mode 100644 analysis/jsoncons/ref/ubjson/decode_ubjson.md create mode 100644 analysis/jsoncons/ref/ubjson/encode_ubjson.md create mode 100644 analysis/jsoncons/ref/ubjson/ubjson.md create mode 100644 analysis/jsoncons/ref/ubjson/ubjson_options.md create mode 100644 analysis/simdjson/SUMMARY.md create mode 100644 analysis/simdjson/basics.md create mode 100644 analysis/simdjson/basics_doxygen.md create mode 100644 analysis/simdjson/builder.md create mode 100644 analysis/simdjson/compile_time.md create mode 100644 analysis/simdjson/compile_time_accessors.md create mode 100644 analysis/simdjson/dom.md create mode 100644 analysis/simdjson/implementation-selection.md create mode 100644 analysis/simdjson/iterate_many.md create mode 100644 analysis/simdjson/ondemand_design.md create mode 100644 analysis/simdjson/parse_many.md create mode 100644 analysis/simdjson/performance.md create mode 100644 analysis/simdjson/tape.md diff --git a/analysis/jsoncons/Examples.md b/analysis/jsoncons/Examples.md new file mode 100644 index 0000000000..1111363139 --- /dev/null +++ b/analysis/jsoncons/Examples.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/Examples.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons/json_filter.hpp +- others/jsoncons/examples/src +- Relevante Klassen/Funktionen/Symbole: Encode, Stream, Construct, Access + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Construct` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Construct` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Construct` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Encode` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons/json_filter.hpp +- others/jsoncons/examples/src +- Symbole: Encode, Stream, Construct, Access +- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/Pages/index.md b/analysis/jsoncons/Pages/index.md new file mode 100644 index 0000000000..2b5f1c4194 --- /dev/null +++ b/analysis/jsoncons/Pages/index.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/Pages/index.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons/json_filter.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- Relevante Klassen/Funktionen/Symbole: Introduction + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/csv/csv.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vorhanden. +- Das Symbol bzw. der Begriff `index` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `index` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. +- Das Symbol bzw. der Begriff `index` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. +- Das Symbol bzw. der Begriff `index` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons/json_filter.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- Symbole: Introduction +- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/Reference.md b/analysis/jsoncons/Reference.md new file mode 100644 index 0000000000..4473a28824 --- /dev/null +++ b/analysis/jsoncons/Reference.md @@ -0,0 +1,40 @@ +# Analyse: others/jsoncons/doc/Reference.md + +## Zugehörige Implementierung +- Relevante Klassen/Funktionen/Symbole: Streaming API for JSON (StAJ), Extensions, [jsonpointer](ref/jsonpointer/jsonpointer.md) + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `Reference` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. +- Das Symbol bzw. der Begriff `Reference` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp` vor. +- Das Symbol bzw. der Begriff `Reference` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp` vor. +- Das Symbol bzw. der Begriff `Reference` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/issues/draft2020-12/DynamicRefKeyword.txt`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- Symbole: Streaming API for JSON (StAJ), Extensions, [jsonpointer](ref/jsonpointer/jsonpointer.md) +- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/SUMMARY.md b/analysis/jsoncons/SUMMARY.md new file mode 100644 index 0000000000..b1a367341d --- /dev/null +++ b/analysis/jsoncons/SUMMARY.md @@ -0,0 +1,251 @@ +# Summary: jsoncons + +Diese Übersicht basiert auf statischer Analyse von Dokumentation, Headern, Tests, Beispielen und Benchmarks im Repository. Vorhandene Tests und Benchmarks wurden in diesem Turn nicht ausgeführt. + +## Übersicht aller geprüften Dateien + +| Doku-Datei | Status | Optimierbar | Priorität | Hauptgrund | +| --- | --- | --- | --- | --- | +| `others/jsoncons/doc/ref/corelib/byte_string_arg_t.md` | widersprüchlich | nein | hohe Priorität | Der dokumentierte Include-Header ist falsch. | +| `others/jsoncons/doc/ref/corelib/json_array_arg_t.md` | widersprüchlich | nein | hohe Priorität | Der dokumentierte Include-Header ist falsch. | +| `others/jsoncons/doc/ref/corelib/json_object_arg_t.md` | widersprüchlich | nein | hohe Priorität | Der dokumentierte Include-Header ist falsch. | +| `others/jsoncons/doc/ref/jsonpath/flatten.md` | widersprüchlich | ja | hohe Priorität | Der dokumentierte Include-Pfad im Kopf ist veraltet oder falsch. | +| `others/jsoncons/doc/ref/jsonpointer/unflatten_options.md` | widersprüchlich | ja | hohe Priorität | Der dokumentierte Include-Pfad ist falsch; korrekt ist `jsoncons_ext/jsonpointer/jsonpointer.hpp`. | +| `others/jsoncons/doc/ref/jsonschema/json_schema/validate.md` | widersprüchlich | ja | hohe Priorität | Die Doku nennt für Overload (1) `void validate(const Json& instance) const`, der Header implementiert aber `Json validate(const Json& instance) const` und gibt den Patch zurück. | +| `others/jsoncons/doc/ref/jsonschema/json_validator.md` | wahrscheinlich veraltet | nein | hohe Priorität | Die dokumentierte Klasse ist im aktuellen Repository nicht in der beschriebenen Form implementiert. | +| `others/jsoncons/doc/ref/jsonschema/schema_error.md` | widersprüchlich | nein | hohe Priorität | Der dokumentierte Include-Pfad ist falsch; die Implementierung liegt in `jsonschema_error.hpp`. | +| `others/jsoncons/doc/ref/jsonschema/schema_version.md` | widersprüchlich | nein | hohe Priorität | Der dokumentierte Include-Pfad ist falsch. | +| `others/jsoncons/doc/ref/jsonschema/validation_output.md` | wahrscheinlich veraltet | nein | hohe Priorität | Der dokumentierte Typ `validation_output` ist im aktuellen Repository nicht nachweisbar. | +| `others/jsoncons/doc/ref/toon/decode_toon.md` | widersprüchlich | ja | hohe Priorität | Der dokumentierte Include-Pfad `jsoncons/decode_toon.hpp` ist falsch; korrekt ist `jsoncons_ext/toon/decode_toon.hpp`. | +| `others/jsoncons/doc/Tutorials/Unicode support.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/corelib/basic_default_json_visitor.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/corelib/basic_staj_event.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/corelib/conversion_error.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/corelib/conversion_result.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/corelib/json_type_traits/Eigen-Matrix-example.md` | teilweise unklar | ja | mittlere Priorität | Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. | +| `others/jsoncons/doc/ref/corelib/read_error.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/corelib/read_result.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/corelib/reflect/Eigen-Matrix-example.md` | teilweise unklar | ja | mittlere Priorität | Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. | +| `others/jsoncons/doc/ref/corelib/reflect/uses-allocator-construction-example.md` | teilweise unklar | ja | mittlere Priorität | Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. | +| `others/jsoncons/doc/ref/corelib/staj_cursor.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/corelib/write_result.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/jsonpath/grammar.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/jsonpath/jsoncons-jsonpath-abnf.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/jsonpath/jsonpath_grammer.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/jsonpath/path_node_kind.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/jsonpointer/jsonpointer_errc.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/ref/jsonschema/jsonschema.md` | teilweise unklar | ja | mittlere Priorität | Mindestens ein gezeigtes C++-Beispiel ist in der Doku syntaktisch unvollständig. | +| `others/jsoncons/doc/ref/toon/key_folding_kind.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/jsoncons/doc/Examples.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/Pages/index.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/Reference.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/Tutorials/Basics.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/build.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/bson/basic_bson_cursor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/bson/basic_bson_encoder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/bson/bson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/bson/bson_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/bson/decode_bson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/bson/encode_bson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/cbor/basic_cbor_cursor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/cbor/basic_cbor_encoder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/cbor/cbor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/cbor/cbor_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/cbor/decode_cbor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/cbor/encode_cbor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/allocator_set.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/basic_json.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/basic_json_cursor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/basic_json_encoder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/basic_json_filter.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/basic_json_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/basic_json_parser.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/basic_json_reader.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/basic_json_visitor.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/bigint_chars_format.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/bignum_format_kind.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/byte_string.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/byte_string_arg.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/byte_string_chars_format.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/byte_string_view.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/conv_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/data-model.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/decode_json.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/encode_json.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/err_handler.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/float_chars_format.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/half_arg.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/half_arg_t.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/indenting.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/allocators.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/array_range.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/as.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/at.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/constructor.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/destructor.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/dump.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/emplace.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/emplace_back.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/erase.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/get_value_or.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/insert.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/insert_or_assign.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/is.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/key_value.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/make_array.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/merge.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/merge_or_update.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/object_range.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/operator=.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/operator_at.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/parse.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/push_back.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/range.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json/try_emplace.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json_array_arg.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json_decoder.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json_object_arg.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json_type.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json_type_traits/built-in-specializations.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json_type_traits/custom-specializations.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/json_type_traits/json_type_traits.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/line_split_kind.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/ojson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/reflect.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/reflect/json_conv_traits.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/reflect/reflect-traits-gen.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/rename_object_key_filter.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/semantic_tag.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/ser_context.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/ser_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/spaces_option.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/staj_array_iterator.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/staj_event_type.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/staj_object_iterator.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/utility/bigint.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/utility/uri.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/wjson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/corelib/wojson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/csv/basic_csv_cursor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/csv/basic_csv_encoder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/csv/basic_csv_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/csv/basic_csv_reader.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/csv/csv.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/csv/csv_mapping_kind.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/csv/decode_csv.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/csv/encode_csv.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/csv/quote_style_kind.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/deprecated.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jmespath/jmespath.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jmespath/jmespath_errc.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jmespath/jmespath_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jmespath/jmespath_expression.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jmespath/make_expression.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jmespath/search.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpatch/apply_patch.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpatch/from_diff.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpatch/jsonpatch.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpatch/jsonpatch_errc.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpatch/jsonpatch_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/basic_json_location.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/basic_path_element.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/basic_path_node.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/abs.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/avg.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/ceil.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/contains.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/ends_with.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/floor.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/keys.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/length.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/max.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/min.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/prod.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/starts_with.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/sum.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/to_number.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/functions/tokenize.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/get.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/json_query.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/json_replace.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/jsonpath.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/jsonpath_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/jsonpath_expression.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/jsonpath_expression/evaluate.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/jsonpath_expression/select.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/jsonpath_expression/select_paths.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/jsonpath_expression/update.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/make_expression.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/remove.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/replace.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpath/result_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpointer/add.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpointer/add_if_absent.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpointer/basic_json_pointer.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpointer/contains.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpointer/flatten.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpointer/get.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpointer/jsonpointer.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpointer/jsonpointer_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpointer/remove.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonpointer/replace.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonschema/custom-error-messages.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonschema/evaluation_options.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonschema/json_schema.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonschema/json_schema/is_valid.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonschema/json_schema/walk.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonschema/make_json_schema.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonschema/validation_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonschema/validation_message.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/jsonschema/walk_result.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/mergepatch/apply_merge_patch.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/mergepatch/from_diff.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/mergepatch/mergepatch.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/msgpack/basic_msgpack_cursor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/msgpack/basic_msgpack_encoder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/msgpack/decode_msgpack.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/msgpack/encode_msgpack.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/msgpack/msgpack.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/msgpack/msgpack_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/toon/encode_toon.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/toon/toon.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/toon/toon_delimiter_kind.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/toon/toon_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/ubjson/basic_ubjson_cursor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/ubjson/basic_ubjson_encoder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/ubjson/decode_ubjson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/ubjson/encode_ubjson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/ubjson/ubjson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/jsoncons/doc/ref/ubjson/ubjson_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | + +## Korrektheit + +- Bestätigt: 183 Dateien. +- Beispiele bestätigt: `others/jsoncons/doc/Examples.md`, `others/jsoncons/doc/Pages/index.md`, `others/jsoncons/doc/Reference.md`, `others/jsoncons/doc/Tutorials/Basics.md`, `others/jsoncons/doc/build.md`, `others/jsoncons/doc/ref/bson/basic_bson_cursor.md`, `others/jsoncons/doc/ref/bson/basic_bson_encoder.md`, `others/jsoncons/doc/ref/bson/bson.md` +- Teilweise unklar: 19 Dateien. +- Beispiele teilweise unklar: `others/jsoncons/doc/Tutorials/Unicode support.md`, `others/jsoncons/doc/ref/corelib/basic_default_json_visitor.md`, `others/jsoncons/doc/ref/corelib/basic_staj_event.md`, `others/jsoncons/doc/ref/corelib/conversion_error.md`, `others/jsoncons/doc/ref/corelib/conversion_result.md`, `others/jsoncons/doc/ref/corelib/json_type_traits/Eigen-Matrix-example.md`, `others/jsoncons/doc/ref/corelib/read_error.md`, `others/jsoncons/doc/ref/corelib/read_result.md`, `others/jsoncons/doc/ref/corelib/reflect/Eigen-Matrix-example.md`, `others/jsoncons/doc/ref/corelib/reflect/uses-allocator-construction-example.md`, `others/jsoncons/doc/ref/corelib/staj_cursor.md`, `others/jsoncons/doc/ref/corelib/write_result.md` +- Widersprüchlich: 9 Dateien. +- Widersprüche mit hoher Relevanz: `others/jsoncons/doc/ref/corelib/byte_string_arg_t.md`, `others/jsoncons/doc/ref/corelib/json_array_arg_t.md`, `others/jsoncons/doc/ref/corelib/json_object_arg_t.md`, `others/jsoncons/doc/ref/jsonpath/flatten.md`, `others/jsoncons/doc/ref/jsonpointer/unflatten_options.md`, `others/jsoncons/doc/ref/jsonschema/json_schema/validate.md`, `others/jsoncons/doc/ref/jsonschema/schema_error.md`, `others/jsoncons/doc/ref/jsonschema/schema_version.md`, `others/jsoncons/doc/ref/toon/decode_toon.md` +- Wahrscheinlich veraltet: 2 Dateien. +- Wahrscheinlich veraltete Referenzen: `others/jsoncons/doc/ref/jsonschema/json_validator.md`, `others/jsoncons/doc/ref/jsonschema/validation_output.md` + +## Performance + +- Hohe Priorität: `others/jsoncons/doc/ref/jsonpath/flatten.md`, `others/jsoncons/doc/ref/jsonpointer/unflatten_options.md`, `others/jsoncons/doc/ref/jsonschema/json_schema/validate.md`, `others/jsoncons/doc/ref/toon/decode_toon.md` +- Mittlere Priorität: `others/jsoncons/doc/ref/corelib/json_type_traits/Eigen-Matrix-example.md`, `others/jsoncons/doc/ref/corelib/reflect/Eigen-Matrix-example.md`, `others/jsoncons/doc/ref/corelib/reflect/uses-allocator-construction-example.md`, `others/jsoncons/doc/ref/jsonschema/jsonschema.md`, `others/jsoncons/doc/ref/bson/basic_bson_cursor.md`, `others/jsoncons/doc/ref/bson/basic_bson_encoder.md`, `others/jsoncons/doc/ref/bson/bson.md`, `others/jsoncons/doc/ref/bson/decode_bson.md`, `others/jsoncons/doc/ref/bson/encode_bson.md`, `others/jsoncons/doc/ref/cbor/basic_cbor_cursor.md`, `others/jsoncons/doc/ref/cbor/basic_cbor_encoder.md`, `others/jsoncons/doc/ref/cbor/cbor.md`, `others/jsoncons/doc/ref/cbor/decode_cbor.md`, `others/jsoncons/doc/ref/cbor/encode_cbor.md`, `others/jsoncons/doc/ref/corelib/basic_json.md`, `others/jsoncons/doc/ref/corelib/basic_json_cursor.md`, `others/jsoncons/doc/ref/corelib/basic_json_encoder.md`, `others/jsoncons/doc/ref/corelib/basic_json_parser.md`, `others/jsoncons/doc/ref/corelib/basic_json_reader.md`, `others/jsoncons/doc/ref/corelib/decode_json.md` +- Bereichsübergreifend auffällig: wiederholte Expression-Kompilierung in JSONPath/JMESPath, wiederholte Reader/Decoder/Encoder-Initialisierung in Convenience-APIs und wiederholtes Pointer-Parsen in string-basierten JSON-Pointer-Overloads. + +## Verarbeitung + +- Hohe Priorität: `others/jsoncons/doc/ref/jsonpointer/unflatten_options.md`, `others/jsoncons/doc/ref/jsonschema/json_schema/validate.md`, `others/jsoncons/doc/ref/toon/decode_toon.md` +- Mittlere Priorität: `others/jsoncons/doc/ref/jsonschema/jsonschema.md`, `others/jsoncons/doc/ref/toon/key_folding_kind.md`, `others/jsoncons/doc/ref/bson/basic_bson_cursor.md`, `others/jsoncons/doc/ref/bson/basic_bson_encoder.md`, `others/jsoncons/doc/ref/bson/bson.md`, `others/jsoncons/doc/ref/bson/decode_bson.md`, `others/jsoncons/doc/ref/bson/encode_bson.md`, `others/jsoncons/doc/ref/cbor/basic_cbor_cursor.md`, `others/jsoncons/doc/ref/cbor/basic_cbor_encoder.md`, `others/jsoncons/doc/ref/cbor/cbor.md`, `others/jsoncons/doc/ref/cbor/decode_cbor.md`, `others/jsoncons/doc/ref/cbor/encode_cbor.md`, `others/jsoncons/doc/ref/corelib/basic_json_cursor.md`, `others/jsoncons/doc/ref/corelib/basic_json_parser.md`, `others/jsoncons/doc/ref/corelib/basic_json_reader.md`, `others/jsoncons/doc/ref/corelib/decode_json.md`, `others/jsoncons/doc/ref/corelib/encode_json.md`, `others/jsoncons/doc/ref/csv/basic_csv_cursor.md`, `others/jsoncons/doc/ref/csv/basic_csv_encoder.md`, `others/jsoncons/doc/ref/csv/basic_csv_reader.md` +- Niedrige Priorität: `others/jsoncons/doc/ref/bson/bson_options.md`, `others/jsoncons/doc/ref/cbor/cbor_options.md`, `others/jsoncons/doc/ref/csv/basic_csv_options.md`, `others/jsoncons/doc/ref/csv/csv_mapping_kind.md`, `others/jsoncons/doc/ref/csv/quote_style_kind.md`, `others/jsoncons/doc/ref/msgpack/msgpack_options.md`, `others/jsoncons/doc/ref/toon/toon_delimiter_kind.md`, `others/jsoncons/doc/ref/toon/toon_options.md`, `others/jsoncons/doc/ref/ubjson/ubjson_options.md` + +## Doku-Anpassungen + +- Hohe Priorität: `others/jsoncons/doc/ref/corelib/byte_string_arg_t.md`, `others/jsoncons/doc/ref/corelib/json_array_arg_t.md`, `others/jsoncons/doc/ref/corelib/json_object_arg_t.md`, `others/jsoncons/doc/ref/jsonpath/flatten.md`, `others/jsoncons/doc/ref/jsonpointer/unflatten_options.md`, `others/jsoncons/doc/ref/jsonschema/json_schema/validate.md`, `others/jsoncons/doc/ref/jsonschema/json_validator.md`, `others/jsoncons/doc/ref/jsonschema/schema_error.md`, `others/jsoncons/doc/ref/jsonschema/schema_version.md`, `others/jsoncons/doc/ref/jsonschema/validation_output.md`, `others/jsoncons/doc/ref/toon/decode_toon.md` +- Mittlere Priorität: `others/jsoncons/doc/Tutorials/Unicode support.md`, `others/jsoncons/doc/ref/corelib/basic_default_json_visitor.md`, `others/jsoncons/doc/ref/corelib/basic_staj_event.md`, `others/jsoncons/doc/ref/corelib/conversion_error.md`, `others/jsoncons/doc/ref/corelib/conversion_result.md`, `others/jsoncons/doc/ref/corelib/json_type_traits/Eigen-Matrix-example.md`, `others/jsoncons/doc/ref/corelib/read_error.md`, `others/jsoncons/doc/ref/corelib/read_result.md`, `others/jsoncons/doc/ref/corelib/reflect/Eigen-Matrix-example.md`, `others/jsoncons/doc/ref/corelib/reflect/uses-allocator-construction-example.md`, `others/jsoncons/doc/ref/corelib/staj_cursor.md`, `others/jsoncons/doc/ref/corelib/write_result.md`, `others/jsoncons/doc/ref/jsonpath/grammar.md`, `others/jsoncons/doc/ref/jsonpath/jsoncons-jsonpath-abnf.md`, `others/jsoncons/doc/ref/jsonpath/jsonpath_grammer.md`, `others/jsoncons/doc/ref/jsonpath/path_node_kind.md`, `others/jsoncons/doc/ref/jsonpointer/jsonpointer_errc.md`, `others/jsoncons/doc/ref/jsonschema/jsonschema.md`, `others/jsoncons/doc/ref/toon/key_folding_kind.md`, `others/jsoncons/doc/ref/bson/basic_bson_cursor.md`, `others/jsoncons/doc/ref/bson/basic_bson_encoder.md`, `others/jsoncons/doc/ref/bson/bson.md`, `others/jsoncons/doc/ref/bson/decode_bson.md`, `others/jsoncons/doc/ref/bson/encode_bson.md`, `others/jsoncons/doc/ref/cbor/basic_cbor_cursor.md`, `others/jsoncons/doc/ref/cbor/basic_cbor_encoder.md`, `others/jsoncons/doc/ref/cbor/cbor.md`, `others/jsoncons/doc/ref/cbor/decode_cbor.md`, `others/jsoncons/doc/ref/cbor/encode_cbor.md`, `others/jsoncons/doc/ref/corelib/basic_json.md` +- Niedrige Priorität: `others/jsoncons/doc/Examples.md`, `others/jsoncons/doc/Pages/index.md`, `others/jsoncons/doc/Reference.md`, `others/jsoncons/doc/Tutorials/Basics.md`, `others/jsoncons/doc/build.md`, `others/jsoncons/doc/ref/bson/bson_options.md`, `others/jsoncons/doc/ref/cbor/cbor_options.md`, `others/jsoncons/doc/ref/corelib/allocator_set.md`, `others/jsoncons/doc/ref/corelib/basic_json_filter.md`, `others/jsoncons/doc/ref/corelib/basic_json_options.md`, `others/jsoncons/doc/ref/corelib/basic_json_visitor.md`, `others/jsoncons/doc/ref/corelib/bigint_chars_format.md`, `others/jsoncons/doc/ref/corelib/bignum_format_kind.md`, `others/jsoncons/doc/ref/corelib/byte_string.md`, `others/jsoncons/doc/ref/corelib/byte_string_arg.md`, `others/jsoncons/doc/ref/corelib/byte_string_chars_format.md`, `others/jsoncons/doc/ref/corelib/byte_string_view.md`, `others/jsoncons/doc/ref/corelib/conv_error.md`, `others/jsoncons/doc/ref/corelib/data-model.md`, `others/jsoncons/doc/ref/corelib/err_handler.md`, `others/jsoncons/doc/ref/corelib/float_chars_format.md`, `others/jsoncons/doc/ref/corelib/half_arg.md`, `others/jsoncons/doc/ref/corelib/half_arg_t.md`, `others/jsoncons/doc/ref/corelib/indenting.md`, `others/jsoncons/doc/ref/corelib/json/allocators.md`, `others/jsoncons/doc/ref/corelib/json/array_range.md`, `others/jsoncons/doc/ref/corelib/json/as.md`, `others/jsoncons/doc/ref/corelib/json/at.md`, `others/jsoncons/doc/ref/corelib/json/constructor.md`, `others/jsoncons/doc/ref/corelib/json/destructor.md` +- Konkrete Schwerpunkte: Include-Pfade korrigieren (`schema_error`, `schema_version`, `decode_toon`, `flatten`, `unflatten_options`, `*_arg_t`), veraltete Seiten (`validation_output`, `json_validator`) bereinigen und fehlerhafte Beispiele (`json_schema/validate`, `jsonschema`) reparieren. diff --git a/analysis/jsoncons/Tutorials/Basics.md b/analysis/jsoncons/Tutorials/Basics.md new file mode 100644 index 0000000000..4426b9bb77 --- /dev/null +++ b/analysis/jsoncons/Tutorials/Basics.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/Tutorials/Basics.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/examples/src/basics_examples.cpp +- others/jsoncons/examples/src/basics_wexamples.cpp +- Relevante Klassen/Funktionen/Symbole: nicht sicher belegbar + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Das Symbol bzw. der Begriff `Basics` kommt in `others/jsoncons/examples/src/basics_examples.cpp` vor. +- Das Symbol bzw. der Begriff `Basics` kommt in `others/jsoncons/examples/src/basics_wexamples.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/examples/src/basics_examples.cpp +- others/jsoncons/examples/src/basics_wexamples.cpp +- Symbole: nicht sicher belegbar +- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/Tutorials/Unicode support.md b/analysis/jsoncons/Tutorials/Unicode support.md new file mode 100644 index 0000000000..620e0c8062 --- /dev/null +++ b/analysis/jsoncons/Tutorials/Unicode support.md @@ -0,0 +1,35 @@ +# Analyse: others/jsoncons/doc/Tutorials/Unicode support.md + +## Zugehörige Implementierung +- Relevante Klassen/Funktionen/Symbole: Reading escaped unicode into utf8 encodings and writing back escaped unicode (with continuations) + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: niedrig +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist + +## Prüfung der inhaltlichen Korrektheit +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. +- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- Symbole: Reading escaped unicode into utf8 encodings and writing back escaped unicode (with continuations) +- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/build.md b/analysis/jsoncons/build.md new file mode 100644 index 0000000000..05769d2ddd --- /dev/null +++ b/analysis/jsoncons/build.md @@ -0,0 +1,43 @@ +# Analyse: others/jsoncons/doc/build.md + +## Zugehörige Implementierung +- others/jsoncons/examples/build/cmake/CMakeLists.txt +- Relevante Klassen/Funktionen/Symbole: build + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `build` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp` vor. +- Das Symbol bzw. der Begriff `build` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator_factory_base.hpp` vor. +- Das Symbol bzw. der Begriff `build` kommt in `others/jsoncons/include/jsoncons/config/compiler_support.hpp` vor. +- Das Symbol bzw. der Begriff `build` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/JSON-Schema-Test-Suite/output-tests/README.md`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/examples/build/cmake/CMakeLists.txt +- Symbole: build +- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/ref/bson/basic_bson_cursor.md b/analysis/jsoncons/ref/bson/basic_bson_cursor.md new file mode 100644 index 0000000000..0e955bdc8e --- /dev/null +++ b/analysis/jsoncons/ref/bson/basic_bson_cursor.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/bson/basic_bson_cursor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp +- others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp +- others/jsoncons/test/bson/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::bson::basic_bson_cursor, basic_bson_cursor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/bson/bson_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `basic_bson_cursor` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `basic_bson_cursor` kommt in `others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/bson/src/bson_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp +- others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp +- others/jsoncons/test/bson/src +- Symbole: jsoncons::bson::basic_bson_cursor, basic_bson_cursor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/bson/src diff --git a/analysis/jsoncons/ref/bson/basic_bson_encoder.md b/analysis/jsoncons/ref/bson/basic_bson_encoder.md new file mode 100644 index 0000000000..06a79b4961 --- /dev/null +++ b/analysis/jsoncons/ref/bson/basic_bson_encoder.md @@ -0,0 +1,55 @@ +# Analyse: others/jsoncons/doc/ref/bson/basic_bson_encoder.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp +- others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp +- others/jsoncons/test/bson/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::bson::basic_bson_encoder, basic_bson_encoder, Destructor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/bson/bson_encoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/bson/bson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `basic_bson_encoder` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp +- others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp +- others/jsoncons/test/bson/src +- Symbole: jsoncons::bson::basic_bson_encoder, basic_bson_encoder, Destructor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/bson/src diff --git a/analysis/jsoncons/ref/bson/bson.md b/analysis/jsoncons/ref/bson/bson.md new file mode 100644 index 0000000000..13ba20435b --- /dev/null +++ b/analysis/jsoncons/ref/bson/bson.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/bson/bson.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_error.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_oid.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_options.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_parser.hpp +- others/jsoncons/test/bson/src +- Relevante Klassen/Funktionen/Symbole: Decode a BSON 128-bit decimal floating point (since 0.165.0), Encode a BSON 128-bit decimal floating point (since 0.165.0) + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/bson/bson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson.hpp` vorhanden. +- Das Symbol bzw. der Begriff `bson` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson.hpp` vor. +- Das Symbol bzw. der Begriff `bson` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `bson` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. +- Das Symbol bzw. der Begriff `bson` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_error.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_oid.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_options.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_parser.hpp +- others/jsoncons/test/bson/src +- Symbole: Decode a BSON 128-bit decimal floating point (since 0.165.0), Encode a BSON 128-bit decimal floating point (since 0.165.0) +- Tests / Beispiele / Benchmarks: others/jsoncons/test/bson/src diff --git a/analysis/jsoncons/ref/bson/bson_options.md b/analysis/jsoncons/ref/bson/bson_options.md new file mode 100644 index 0000000000..13fae235e3 --- /dev/null +++ b/analysis/jsoncons/ref/bson/bson_options.md @@ -0,0 +1,54 @@ +# Analyse: others/jsoncons/doc/ref/bson/bson_options.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/bson/bson_options.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_parser.hpp +- others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp +- others/jsoncons/test/bson/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::bson::bson_options, bson_options, Modifiers + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/bson/bson_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson_options.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Modifiers` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `bson_options` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/bson/src/bson_encoder_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/bson/bson_options.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_parser.hpp +- others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp +- others/jsoncons/test/bson/src +- Symbole: jsoncons::bson::bson_options, bson_options, Modifiers +- Tests / Beispiele / Benchmarks: others/jsoncons/test/bson/src diff --git a/analysis/jsoncons/ref/bson/decode_bson.md b/analysis/jsoncons/ref/bson/decode_bson.md new file mode 100644 index 0000000000..bd8d5da773 --- /dev/null +++ b/analysis/jsoncons/ref/bson/decode_bson.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/bson/decode_bson.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/bson/bson.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp +- others/jsoncons/test/bson/src/bson_encoder_tests.cpp +- others/jsoncons/test/bson/src/bson_reader_tests.cpp +- others/jsoncons/test/bson/src/bson_test_suite.cpp +- others/jsoncons/test/bson/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::bson::decode_bson, decode_bson + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/bson/bson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `decode_bson` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson.hpp` vor. +- Das Symbol bzw. der Begriff `decode_bson` kommt in `others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp` vor. +- Das Symbol bzw. der Begriff `decode_bson` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/bson/bson.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp +- others/jsoncons/test/bson/src/bson_encoder_tests.cpp +- others/jsoncons/test/bson/src/bson_reader_tests.cpp +- others/jsoncons/test/bson/src/bson_test_suite.cpp +- others/jsoncons/test/bson/src +- Symbole: jsoncons::bson::decode_bson, decode_bson +- Tests / Beispiele / Benchmarks: others/jsoncons/test/bson/src diff --git a/analysis/jsoncons/ref/bson/encode_bson.md b/analysis/jsoncons/ref/bson/encode_bson.md new file mode 100644 index 0000000000..9c32b1dff7 --- /dev/null +++ b/analysis/jsoncons/ref/bson/encode_bson.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/bson/encode_bson.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/bson/bson.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp +- others/jsoncons/test/bson/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::bson::encode_bson, encode_bson, null, bool, int32 + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/bson/bson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `null` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `null` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. +- Das Symbol bzw. der Begriff `null` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `null` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/bson/bson.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp +- others/jsoncons/test/bson/src +- Symbole: jsoncons::bson::encode_bson, encode_bson, null, bool, int32 +- Tests / Beispiele / Benchmarks: others/jsoncons/test/bson/src diff --git a/analysis/jsoncons/ref/cbor/basic_cbor_cursor.md b/analysis/jsoncons/ref/cbor/basic_cbor_cursor.md new file mode 100644 index 0000000000..78746a613f --- /dev/null +++ b/analysis/jsoncons/ref/cbor/basic_cbor_cursor.md @@ -0,0 +1,55 @@ +# Analyse: others/jsoncons/doc/ref/cbor/basic_cbor_cursor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp +- others/jsoncons/include/jsoncons_ext/cbor/decode_cbor.hpp +- others/jsoncons/test/cbor/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::cbor::basic_cbor_cursor, basic_cbor_cursor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `basic_cbor_cursor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp +- others/jsoncons/include/jsoncons_ext/cbor/decode_cbor.hpp +- others/jsoncons/test/cbor/src +- Symbole: jsoncons::cbor::basic_cbor_cursor, basic_cbor_cursor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/cbor/src diff --git a/analysis/jsoncons/ref/cbor/basic_cbor_encoder.md b/analysis/jsoncons/ref/cbor/basic_cbor_encoder.md new file mode 100644 index 0000000000..5fa1fc1042 --- /dev/null +++ b/analysis/jsoncons/ref/cbor/basic_cbor_encoder.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/cbor/basic_cbor_encoder.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp +- others/jsoncons/include/jsoncons_ext/cbor/encode_cbor.hpp +- others/jsoncons/test/cbor/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::cbor::basic_cbor_encoder, basic_cbor_encoder, Destructor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor_encoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp +- others/jsoncons/include/jsoncons_ext/cbor/encode_cbor.hpp +- others/jsoncons/test/cbor/src +- Symbole: jsoncons::cbor::basic_cbor_encoder, basic_cbor_encoder, Destructor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/cbor/src diff --git a/analysis/jsoncons/ref/cbor/cbor.md b/analysis/jsoncons/ref/cbor/cbor.md new file mode 100644 index 0000000000..e16ea576bd --- /dev/null +++ b/analysis/jsoncons/ref/cbor/cbor.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/cbor/cbor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_detail.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_error.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_options.hpp +- Relevante Klassen/Funktionen/Symbole: nicht sicher belegbar + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vor. +- Das Symbol bzw. der Begriff `cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_detail.hpp` vor. +- Das Symbol bzw. der Begriff `cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_detail.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_error.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_options.hpp +- Symbole: nicht sicher belegbar +- Tests / Beispiele / Benchmarks: others/jsoncons/test/cbor/src diff --git a/analysis/jsoncons/ref/cbor/cbor_options.md b/analysis/jsoncons/ref/cbor/cbor_options.md new file mode 100644 index 0000000000..4cdc16ba22 --- /dev/null +++ b/analysis/jsoncons/ref/cbor/cbor_options.md @@ -0,0 +1,53 @@ +# Analyse: others/jsoncons/doc/ref/cbor/cbor_options.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/cbor/cbor_options.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp +- others/jsoncons/test/cbor/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::cbor::cbor_options, cbor_options, Modifiers + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor_options.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Modifiers` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/cbor/src/cbor_encoder_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/cbor/src/cbor_typed_array_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/cbor/cbor_options.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp +- others/jsoncons/test/cbor/src +- Symbole: jsoncons::cbor::cbor_options, cbor_options, Modifiers +- Tests / Beispiele / Benchmarks: others/jsoncons/test/cbor/src diff --git a/analysis/jsoncons/ref/cbor/decode_cbor.md b/analysis/jsoncons/ref/cbor/decode_cbor.md new file mode 100644 index 0000000000..8be21fd416 --- /dev/null +++ b/analysis/jsoncons/ref/cbor/decode_cbor.md @@ -0,0 +1,55 @@ +# Analyse: others/jsoncons/doc/ref/cbor/decode_cbor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/decode_cbor.hpp +- others/jsoncons/test/cbor/src/cbor_bitset_traits_tests.cpp +- others/jsoncons/test/cbor/src/cbor_encoder_tests.cpp +- others/jsoncons/test/cbor/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::cbor::decode_cbor, decode_cbor, Round trip (JSON to CBOR bytes back to JSON) + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `decode_cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vor. +- Das Symbol bzw. der Begriff `decode_cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/decode_cbor.hpp` vor. +- Das Symbol bzw. der Begriff `decode_cbor` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/decode_cbor.hpp +- others/jsoncons/test/cbor/src/cbor_bitset_traits_tests.cpp +- others/jsoncons/test/cbor/src/cbor_encoder_tests.cpp +- others/jsoncons/test/cbor/src +- Symbole: jsoncons::cbor::decode_cbor, decode_cbor, Round trip (JSON to CBOR bytes back to JSON) +- Tests / Beispiele / Benchmarks: others/jsoncons/test/cbor/src diff --git a/analysis/jsoncons/ref/cbor/encode_cbor.md b/analysis/jsoncons/ref/cbor/encode_cbor.md new file mode 100644 index 0000000000..70872641d8 --- /dev/null +++ b/analysis/jsoncons/ref/cbor/encode_cbor.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/cbor/encode_cbor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/encode_cbor.hpp +- others/jsoncons/test/cbor/src/cbor_bitset_traits_tests.cpp +- others/jsoncons/test/cbor/src/cbor_cursor_tests.cpp +- others/jsoncons/test/cbor/src/cbor_encoder_tests.cpp +- others/jsoncons/test/cbor/src/cbor_event_reader_tests.cpp +- others/jsoncons/test/cbor/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::cbor::encode_cbor, encode_cbor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `encode_cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vor. +- Das Symbol bzw. der Begriff `encode_cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/encode_cbor.hpp` vor. +- Das Symbol bzw. der Begriff `encode_cbor` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/encode_cbor.hpp +- others/jsoncons/test/cbor/src/cbor_bitset_traits_tests.cpp +- others/jsoncons/test/cbor/src/cbor_cursor_tests.cpp +- others/jsoncons/test/cbor/src/cbor_encoder_tests.cpp +- others/jsoncons/test/cbor/src/cbor_event_reader_tests.cpp +- others/jsoncons/test/cbor/src +- Symbole: jsoncons::cbor::encode_cbor, encode_cbor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/cbor/src diff --git a/analysis/jsoncons/ref/corelib/allocator_set.md b/analysis/jsoncons/ref/corelib/allocator_set.md new file mode 100644 index 0000000000..20622d59ae --- /dev/null +++ b/analysis/jsoncons/ref/corelib/allocator_set.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/allocator_set.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/allocator_set.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::allocator_set, allocator_set, Accessors + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/allocator_set.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/allocator_set.hpp` vorhanden. +- Das Symbol bzw. der Begriff `allocator_set` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. +- Das Symbol bzw. der Begriff `allocator_set` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `allocator_set` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Das Symbol bzw. der Begriff `allocator_set` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/encode_msgpack_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/allocator_set.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::allocator_set, allocator_set, Accessors +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_default_json_visitor.md b/analysis/jsoncons/ref/corelib/basic_default_json_visitor.md new file mode 100644 index 0000000000..dc1ff2082b --- /dev/null +++ b/analysis/jsoncons/ref/corelib/basic_default_json_visitor.md @@ -0,0 +1,45 @@ +# Analyse: others/jsoncons/doc/ref/corelib/basic_default_json_visitor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_visitor.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_default_json_visitor, basic_default_json_visitor + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: hoch +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_visitor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_visitor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `basic_default_json_visitor` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `basic_default_json_visitor` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_visitor.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_default_json_visitor, basic_default_json_visitor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json.md b/analysis/jsoncons/ref/corelib/basic_json.md new file mode 100644 index 0000000000..48acef64a4 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/basic_json.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/basic_json.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json, basic_json + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/basic_json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/basic_json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `jsoncons::basic_json` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json, basic_json +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_cursor.md b/analysis/jsoncons/ref/corelib/basic_json_cursor.md new file mode 100644 index 0000000000..083dfabde2 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/basic_json_cursor.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/basic_json_cursor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_cursor, basic_json_cursor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_cursor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `basic_json_cursor` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json_cursor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Bei größeren Verarbeitungsketten sind die Reader-/Visitor-/Cursor-Pfade nachvollziehbarer als mehrfaches Parse-zu-`basic_json` plus nachträgliche Weiterverarbeitung. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json_cursor, basic_json_cursor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_encoder.md b/analysis/jsoncons/ref/corelib/basic_json_encoder.md new file mode 100644 index 0000000000..5f47559e6d --- /dev/null +++ b/analysis/jsoncons/ref/corelib/basic_json_encoder.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/basic_json_encoder.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_encoder, basic_json_encoder, Destructor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_encoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_encoder.hpp` vorhanden. +- Das Symbol bzw. der Begriff `basic_json_encoder` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json_encoder` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json_encoder` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_event_reader_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json_encoder, basic_json_encoder, Destructor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_filter.md b/analysis/jsoncons/ref/corelib/basic_json_filter.md new file mode 100644 index 0000000000..7fdd8265f7 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/basic_json_filter.md @@ -0,0 +1,53 @@ +# Analyse: others/jsoncons/doc/ref/corelib/basic_json_filter.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_filter.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/include/jsoncons/json_reader.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_filter, basic_json_filter, Accessors, Inherited from [jsoncons::basic_json_visitor](basic_json_visitor.md) + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_filter.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_filter.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json_filter` kommt in `others/jsoncons/include/jsoncons/json_filter.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_filter.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/include/jsoncons/json_reader.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json_filter, basic_json_filter, Accessors, Inherited from [jsoncons::basic_json_visitor](basic_json_visitor.md) +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_options.md b/analysis/jsoncons/ref/corelib/basic_json_options.md new file mode 100644 index 0000000000..f7cb723b56 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/basic_json_options.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/basic_json_options.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_options, basic_json_options, Setters + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `basic_json_options` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json_options` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json_options, basic_json_options, Setters +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_parser.md b/analysis/jsoncons/ref/corelib/basic_json_parser.md new file mode 100644 index 0000000000..b264a17a99 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/basic_json_parser.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/basic_json_parser.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_parser, basic_json_parser + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_parser.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_parser.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `basic_json_parser` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json_parser` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json_parser` kommt in `others/jsoncons/include/jsoncons/json_parser.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Bei größeren Verarbeitungsketten sind die Reader-/Visitor-/Cursor-Pfade nachvollziehbarer als mehrfaches Parse-zu-`basic_json` plus nachträgliche Weiterverarbeitung. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json_parser, basic_json_parser +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_reader.md b/analysis/jsoncons/ref/corelib/basic_json_reader.md new file mode 100644 index 0000000000..28489cc7f1 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/basic_json_reader.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/basic_json_reader.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_reader.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_reader, basic_json_reader + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_reader.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_reader.hpp` vorhanden. +- Das Symbol bzw. der Begriff `basic_json_reader` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json_reader` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_subfield_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Bei größeren Verarbeitungsketten sind die Reader-/Visitor-/Cursor-Pfade nachvollziehbarer als mehrfaches Parse-zu-`basic_json` plus nachträgliche Weiterverarbeitung. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_reader.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json_reader, basic_json_reader +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_visitor.md b/analysis/jsoncons/ref/corelib/basic_json_visitor.md new file mode 100644 index 0000000000..1a18131dc8 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/basic_json_visitor.md @@ -0,0 +1,45 @@ +# Analyse: others/jsoncons/doc/ref/corelib/basic_json_visitor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_visitor.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_visitor, basic_json_visitor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_visitor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_visitor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `basic_json_visitor` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json_visitor` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json_visitor` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json_visitor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_visitor.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json_visitor, basic_json_visitor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_staj_event.md b/analysis/jsoncons/ref/corelib/basic_staj_event.md new file mode 100644 index 0000000000..c8149f8eb9 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/basic_staj_event.md @@ -0,0 +1,45 @@ +# Analyse: others/jsoncons/doc/ref/corelib/basic_staj_event.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_staj_event, basic_staj_event + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: hoch +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/staj_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/staj_cursor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `basic_staj_event` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `basic_staj_event` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `basic_staj_event` kommt in `others/jsoncons/include/jsoncons/staj_event.hpp` vor. +- Das Symbol bzw. der Begriff `basic_staj_event` kommt in `others/jsoncons/include/jsoncons/staj_event_reader.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_staj_event, basic_staj_event +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/bigint_chars_format.md b/analysis/jsoncons/ref/corelib/bigint_chars_format.md new file mode 100644 index 0000000000..e7cadfd863 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/bigint_chars_format.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/bigint_chars_format.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::bigint_chars_format (deprecated in 1.0.0), bigint_chars_format (deprecated in 1.0.0), bigint_chars_format + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `bigint_chars_format` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/jsonschema_examples.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::bigint_chars_format (deprecated in 1.0.0), bigint_chars_format (deprecated in 1.0.0), bigint_chars_format +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/bignum_format_kind.md b/analysis/jsoncons/ref/corelib/bignum_format_kind.md new file mode 100644 index 0000000000..04d0060637 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/bignum_format_kind.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/bignum_format_kind.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::bignum_format_kind, bignum_format_kind + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `bignum_format_kind` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. +- Das Symbol bzw. der Begriff `bignum_format_kind` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `jsoncons::bignum_format_kind` kommt in `others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::bignum_format_kind, bignum_format_kind +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/byte_string.md b/analysis/jsoncons/ref/corelib/byte_string.md new file mode 100644 index 0000000000..e66c9a1497 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/byte_string.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/byte_string.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/utility/byte_string.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::byte_string, byte_string, Constructor, Assignment, Iterators + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/utility/byte_string.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/utility/byte_string.hpp` vorhanden. +- Das Symbol bzw. der Begriff `byte_string` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `byte_string` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. +- Das Symbol bzw. der Begriff `byte_string` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `byte_string` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/utility/byte_string.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::byte_string, byte_string, Constructor, Assignment, Iterators +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/byte_string_arg.md b/analysis/jsoncons/ref/corelib/byte_string_arg.md new file mode 100644 index 0000000000..6fad220dc3 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/byte_string_arg.md @@ -0,0 +1,53 @@ +# Analyse: others/jsoncons/doc/ref/corelib/byte_string_arg.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src/json_as_tests.cpp +- others/jsoncons/test/corelib/src/json_assignment_tests.cpp +- others/jsoncons/test/corelib/src/json_const_pointer_arg_tests.cpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::byte_string_arg, byte_string_arg + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_type.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type.hpp` vorhanden. +- Das Symbol bzw. der Begriff `byte_string_arg` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `byte_string_arg` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. +- Das Symbol bzw. der Begriff `byte_string_arg` kommt in `others/jsoncons/include/jsoncons/json_type.hpp` vor. +- Das Symbol bzw. der Begriff `byte_string_arg` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_as_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_assignment_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_const_pointer_arg_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src/json_as_tests.cpp +- others/jsoncons/test/corelib/src/json_assignment_tests.cpp +- others/jsoncons/test/corelib/src/json_const_pointer_arg_tests.cpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::byte_string_arg, byte_string_arg +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/byte_string_arg_t.md b/analysis/jsoncons/ref/corelib/byte_string_arg_t.md new file mode 100644 index 0000000000..2b8721d705 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/byte_string_arg_t.md @@ -0,0 +1,48 @@ +# Analyse: others/jsoncons/doc/ref/corelib/byte_string_arg_t.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/semantic_tag.hpp +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::byte_string_arg_t, byte_string_arg_t + +## Kurzfazit +- Status: widersprüchlich +- Vertrauensniveau: hoch +- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. + +## Was durch Code belegt ist +- `byte_string_arg_t` ist in [others/jsoncons/include/jsoncons/json_type.hpp](others/jsoncons/include/jsoncons/json_type.hpp) definiert. +- Die Doku nennt als Include `jsoncons/semantic_tag.hpp`; dort ist die Definition nicht vorhanden. +- Der in der Doku verwendete Header `jsoncons/semantic_tag.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/semantic_tag.hpp` vorhanden. +- Das Symbol bzw. der Begriff `byte_string_arg_t` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `byte_string_arg_t` kommt in `others/jsoncons/include/jsoncons/json_type.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die fachliche Beschreibung als Disambiguierungs-Typ für Byte-Strings passt zur Verwendung in `basic_json.hpp` und `json_decoder.hpp`. +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. +- Widerspruch: Der dokumentierte Include-Header ist falsch. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. + +## Vorschläge zur Dokumentationsanpassung +- Include auf `#include ` korrigieren. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/semantic_tag.hpp +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::byte_string_arg_t, byte_string_arg_t +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/byte_string_chars_format.md b/analysis/jsoncons/ref/corelib/byte_string_chars_format.md new file mode 100644 index 0000000000..79a6f7c89c --- /dev/null +++ b/analysis/jsoncons/ref/corelib/byte_string_chars_format.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/byte_string_chars_format.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::byte_string_chars_format, byte_string_chars_format + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `byte_string_chars_format` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. +- Das Symbol bzw. der Begriff `byte_string_chars_format` kommt in `others/jsoncons/include/jsoncons/json_encoders.hpp` vor. +- Das Symbol bzw. der Begriff `byte_string_chars_format` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `byte_string_chars_format` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::byte_string_chars_format, byte_string_chars_format +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/byte_string_view.md b/analysis/jsoncons/ref/corelib/byte_string_view.md new file mode 100644 index 0000000000..6191b38a01 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/byte_string_view.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/byte_string_view.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/utility/byte_string.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::byte_string_view, byte_string_view, Constructor, Assignment, Iterators + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/utility/byte_string.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/utility/byte_string.hpp` vorhanden. +- Das Symbol bzw. der Begriff `byte_string_view` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `byte_string_view` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. +- Das Symbol bzw. der Begriff `byte_string_view` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_timestamp_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/utility/byte_string.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::byte_string_view, byte_string_view, Constructor, Assignment, Iterators +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/conv_error.md b/analysis/jsoncons/ref/corelib/conv_error.md new file mode 100644 index 0000000000..21518f2cad --- /dev/null +++ b/analysis/jsoncons/ref/corelib/conv_error.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/conv_error.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/conv_error.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::conv_error, conv_error, Inherited from std::system_error, system_error + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/conv_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/conv_error.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `conv_error` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `conv_error` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. +- Das Symbol bzw. der Begriff `conv_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Das Symbol bzw. der Begriff `conv_error` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/conv_error.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::conv_error, conv_error, Inherited from std::system_error, system_error +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/conversion_error.md b/analysis/jsoncons/ref/corelib/conversion_error.md new file mode 100644 index 0000000000..32f8a7e19e --- /dev/null +++ b/analysis/jsoncons/ref/corelib/conversion_error.md @@ -0,0 +1,44 @@ +# Analyse: others/jsoncons/doc/ref/corelib/conversion_error.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/conversion_result.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::conversion_error, conversion_error, Accessors + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: mittel +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/conversion_result.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/conversion_result.hpp` vorhanden. +- Das Symbol bzw. der Begriff `conversion_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Das Symbol bzw. der Begriff `Accessors` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. +- Das Symbol bzw. der Begriff `Accessors` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/conversion_result.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::conversion_error, conversion_error, Accessors +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/conversion_result.md b/analysis/jsoncons/ref/corelib/conversion_result.md new file mode 100644 index 0000000000..01f8a575b5 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/conversion_result.md @@ -0,0 +1,45 @@ +# Analyse: others/jsoncons/doc/ref/corelib/conversion_result.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/conversion_result.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::conversion_result, conversion_result, Accessors + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: hoch +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/conversion_result.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/conversion_result.hpp` vorhanden. +- Das Symbol bzw. der Begriff `conversion_result` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `conversion_result` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Das Symbol bzw. der Begriff `Accessors` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. +- Das Symbol bzw. der Begriff `Member types` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/conversion_result.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::conversion_result, conversion_result, Accessors +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/data-model.md b/analysis/jsoncons/ref/corelib/data-model.md new file mode 100644 index 0000000000..79cc2f661f --- /dev/null +++ b/analysis/jsoncons/ref/corelib/data-model.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/data-model.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: data-model + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/jsonschema_examples.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/build/cmake/CMakeLists.txt` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/test/corelib/src +- Symbole: data-model +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/decode_json.md b/analysis/jsoncons/ref/corelib/decode_json.md new file mode 100644 index 0000000000..f5e22cf3d5 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/decode_json.md @@ -0,0 +1,55 @@ +# Analyse: others/jsoncons/doc/ref/corelib/decode_json.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/decode_json.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src/decode_json_using_allocator_tests.cpp +- others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp +- others/jsoncons/test/corelib/src/json_bitset_traits_tests.cpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::decode_json, try_decode_json, decode_json + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/decode_json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/decode_json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `decode_json` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Das Symbol bzw. der Begriff `decode_json` kommt in `others/jsoncons/include/jsoncons/json.hpp` vor. +- Das Symbol bzw. der Begriff `decode_json` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Bei größeren Verarbeitungsketten sind die Reader-/Visitor-/Cursor-Pfade nachvollziehbarer als mehrfaches Parse-zu-`basic_json` plus nachträgliche Weiterverarbeitung. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/decode_json.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src/decode_json_using_allocator_tests.cpp +- others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp +- others/jsoncons/test/corelib/src/json_bitset_traits_tests.cpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::decode_json, try_decode_json, decode_json +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/encode_json.md b/analysis/jsoncons/ref/corelib/encode_json.md new file mode 100644 index 0000000000..854a1beae1 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/encode_json.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/corelib/encode_json.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/encode_json.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp +- others/jsoncons/test/corelib/src/json_bitset_traits_tests.cpp +- others/jsoncons/test/corelib/src/json_cursor_tests.cpp +- others/jsoncons/test/corelib/src/json_options_tests.cpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::encode_json, jsoncons::encode_json_pretty, jsoncons::try_encode_json, jsoncons::try_encode_json_pretty, try_encode_json_pretty + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/encode_json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/encode_json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `try_encode_json_pretty` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. +- Das Symbol bzw. der Begriff `encode_json` kommt in `others/jsoncons/include/jsoncons/json.hpp` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Bei größeren Verarbeitungsketten sind die Reader-/Visitor-/Cursor-Pfade nachvollziehbarer als mehrfaches Parse-zu-`basic_json` plus nachträgliche Weiterverarbeitung. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/encode_json.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp +- others/jsoncons/test/corelib/src/json_bitset_traits_tests.cpp +- others/jsoncons/test/corelib/src/json_cursor_tests.cpp +- others/jsoncons/test/corelib/src/json_options_tests.cpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::encode_json, jsoncons::encode_json_pretty, jsoncons::try_encode_json, jsoncons::try_encode_json_pretty, try_encode_json_pretty +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/err_handler.md b/analysis/jsoncons/ref/corelib/err_handler.md new file mode 100644 index 0000000000..9514acb876 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/err_handler.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/err_handler.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: err_handler + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_parser.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_parser.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. +- Das Symbol bzw. der Begriff `err_handler` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `err_handler` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `err_handler` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `err_handler` kommt in `others/jsoncons/include/jsoncons/json_parser.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_parser_recovery_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_parser_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/test/corelib/src +- Symbole: err_handler +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/float_chars_format.md b/analysis/jsoncons/ref/corelib/float_chars_format.md new file mode 100644 index 0000000000..9fff923d90 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/float_chars_format.md @@ -0,0 +1,48 @@ +# Analyse: others/jsoncons/doc/ref/corelib/float_chars_format.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/test/corelib/src/double_to_string_tests.cpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::float_chars_format, float_chars_format + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. +- Das Symbol bzw. der Begriff `float_chars_format` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `float_chars_format` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `float_chars_format` kommt in `others/jsoncons/include/jsoncons/staj_event.hpp` vor. +- Das Symbol bzw. der Begriff `float_chars_format` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/double_to_string_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/test/corelib/src/double_to_string_tests.cpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::float_chars_format, float_chars_format +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/half_arg.md b/analysis/jsoncons/ref/corelib/half_arg.md new file mode 100644 index 0000000000..9be56136ff --- /dev/null +++ b/analysis/jsoncons/ref/corelib/half_arg.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/half_arg.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::half_arg, half_arg + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_type.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type.hpp` vorhanden. +- Das Symbol bzw. der Begriff `half_arg` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `half_arg` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. +- Das Symbol bzw. der Begriff `half_arg` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `half_arg` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_const_pointer_arg_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_pointer_arg_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/try_to_json_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::half_arg, half_arg +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/half_arg_t.md b/analysis/jsoncons/ref/corelib/half_arg_t.md new file mode 100644 index 0000000000..7d037fa8ce --- /dev/null +++ b/analysis/jsoncons/ref/corelib/half_arg_t.md @@ -0,0 +1,45 @@ +# Analyse: others/jsoncons/doc/ref/corelib/half_arg_t.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/semantic_tag.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::half_arg_t, half_arg_t + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/semantic_tag.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/semantic_tag.hpp` vorhanden. +- Das Symbol bzw. der Begriff `half_arg_t` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `half_arg_t` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. +- Das Symbol bzw. der Begriff `half_arg_t` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `half_arg_t` kommt in `others/jsoncons/include/jsoncons/json_filter.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/cbor/src/cbor_event_visitor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/semantic_tag.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::half_arg_t, half_arg_t +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/indenting.md b/analysis/jsoncons/ref/corelib/indenting.md new file mode 100644 index 0000000000..619ed6a4ef --- /dev/null +++ b/analysis/jsoncons/ref/corelib/indenting.md @@ -0,0 +1,55 @@ +# Analyse: others/jsoncons/doc/ref/corelib/indenting.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp +- others/jsoncons/test/corelib/src/json_cursor_tests.cpp +- others/jsoncons/test/corelib/src/reflect/reflect_traits_container_tests.cpp +- others/jsoncons/test/corelib/src/reflect/reflect_traits_gen_functional_tests.cpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::indenting, indenting + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. +- Das Symbol bzw. der Begriff `indenting` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `indenting` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. +- Das Symbol bzw. der Begriff `indenting` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `indenting` kommt in `others/jsoncons/include/jsoncons/pretty_print.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/reflect/reflect_traits_container_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp +- others/jsoncons/test/corelib/src/json_cursor_tests.cpp +- others/jsoncons/test/corelib/src/reflect/reflect_traits_container_tests.cpp +- others/jsoncons/test/corelib/src/reflect/reflect_traits_gen_functional_tests.cpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::indenting, indenting +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json.md b/analysis/jsoncons/ref/corelib/json.md new file mode 100644 index 0000000000..263e2a11b1 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/allocator_holder.hpp +- others/jsoncons/include/jsoncons/allocator_set.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/conv_error.hpp +- others/jsoncons/include/jsoncons/conversion_result.hpp +- others/jsoncons/include/jsoncons/decode_json.hpp +- others/jsoncons/include/jsoncons/diagnostics_visitor.hpp +- others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::json, json, Nulls + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `json` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. +- Das Symbol bzw. der Begriff `json` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. +- Das Symbol bzw. der Begriff `jsoncons::json` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `json` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/allocator_holder.hpp +- others/jsoncons/include/jsoncons/allocator_set.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/conv_error.hpp +- others/jsoncons/include/jsoncons/conversion_result.hpp +- others/jsoncons/include/jsoncons/decode_json.hpp +- others/jsoncons/include/jsoncons/diagnostics_visitor.hpp +- others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::json, json, Nulls +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/allocators.md b/analysis/jsoncons/ref/corelib/json/allocators.md new file mode 100644 index 0000000000..8806392a50 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/allocators.md @@ -0,0 +1,52 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/allocators.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/src/pmr_allocator_examples.cpp +- others/jsoncons/include/jsoncons/allocator_set.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: Allocators, Propagation + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `allocators` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. +- Das Symbol bzw. der Begriff `allocators` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `allocators` kommt in `others/jsoncons/examples/src/pmr_allocator_examples.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/src/pmr_allocator_examples.cpp +- others/jsoncons/include/jsoncons/allocator_set.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/test/corelib/src +- Symbole: Allocators, Propagation +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/array_range.md b/analysis/jsoncons/ref/corelib/json/array_range.md new file mode 100644 index 0000000000..53da8b40ad --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/array_range.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/array_range.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::array_range, array_range + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `array_range` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `array_range` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. +- Das Symbol bzw. der Begriff `array_range` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `array_range` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_test_suite.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/jsonschema_draft201909_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::array_range, array_range +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/as.md b/analysis/jsoncons/ref/corelib/json/as.md new file mode 100644 index 0000000000..10a4d4acf8 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/as.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/as.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/conv_error.hpp +- others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::as, jsoncons::basic_json::try_as, try_as, Accessing a json array value as a std::vector, vector + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `try_as` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `vector` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. +- Das Symbol bzw. der Begriff `vector` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. +- Das Symbol bzw. der Begriff `vector` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/conv_error.hpp +- others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::as, jsoncons::basic_json::try_as, try_as, Accessing a json array value as a std::vector, vector +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/at.md b/analysis/jsoncons/ref/corelib/json/at.md new file mode 100644 index 0000000000..c242598962 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/at.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/at.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/build/cmake/CMakeLists.txt +- others/jsoncons/examples/src/csv_examples.cpp +- others/jsoncons/examples/src/jsonschema_examples.cpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::at + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/jsonschema_examples.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/build/cmake/CMakeLists.txt` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/build/cmake/CMakeLists.txt +- others/jsoncons/examples/src/csv_examples.cpp +- others/jsoncons/examples/src/jsonschema_examples.cpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::at +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/constructor.md b/analysis/jsoncons/ref/corelib/json/constructor.md new file mode 100644 index 0000000000..d1fa9a0b2a --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/constructor.md @@ -0,0 +1,61 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/constructor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/decode_json.hpp +- others/jsoncons/include/jsoncons/diagnostics_visitor.hpp +- others/jsoncons/include/jsoncons/encode_json.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::basic_json, basic_json, Helpers + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/decode_json.hpp +- others/jsoncons/include/jsoncons/diagnostics_visitor.hpp +- others/jsoncons/include/jsoncons/encode_json.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::basic_json, basic_json, Helpers +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/destructor.md b/analysis/jsoncons/ref/corelib/json/destructor.md new file mode 100644 index 0000000000..24fc42effa --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/destructor.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/destructor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/decode_json.hpp +- others/jsoncons/include/jsoncons/diagnostics_visitor.hpp +- others/jsoncons/include/jsoncons/encode_json.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::basic_json, basic_json, destructor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/decode_json.hpp +- others/jsoncons/include/jsoncons/diagnostics_visitor.hpp +- others/jsoncons/include/jsoncons/encode_json.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::basic_json, basic_json, destructor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/dump.md b/analysis/jsoncons/ref/corelib/json/dump.md new file mode 100644 index 0000000000..0d6426906d --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/dump.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/dump.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/encode_json.hpp +- others/jsoncons/include/jsoncons/pretty_print.hpp +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/include/jsoncons/staj_event_reader.hpp +- others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::dump, jsoncons::basic_json::dump_pretty, dump_pretty + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/csv/csv.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vorhanden. +- Das Symbol bzw. der Begriff `dump_pretty` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `dump` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. +- Das Symbol bzw. der Begriff `dump` kommt in `others/jsoncons/include/jsoncons/pretty_print.hpp` vor. +- Das Symbol bzw. der Begriff `dump` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/encode_json.hpp +- others/jsoncons/include/jsoncons/pretty_print.hpp +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/include/jsoncons/staj_event_reader.hpp +- others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp +- Symbole: jsoncons::basic_json::dump, jsoncons::basic_json::dump_pretty, dump_pretty +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/emplace.md b/analysis/jsoncons/ref/corelib/json/emplace.md new file mode 100644 index 0000000000..4f0d22880e --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/emplace.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/emplace.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::emplace, emplace + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `emplace` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `emplace` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `emplace` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. +- Das Symbol bzw. der Begriff `emplace` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::emplace, emplace +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/emplace_back.md b/analysis/jsoncons/ref/corelib/json/emplace_back.md new file mode 100644 index 0000000000..51286d1c86 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/emplace_back.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/emplace_back.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::emplace_back, emplace_back + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `emplace_back` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `emplace_back` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `emplace_back` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. +- Das Symbol bzw. der Begriff `emplace_back` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::emplace_back, emplace_back +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/erase.md b/analysis/jsoncons/ref/corelib/json/erase.md new file mode 100644 index 0000000000..9ba09d44fa --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/erase.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/erase.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::erase, erase, Iterating an array and erasing elements (since 0.168.6), Iterating an object and erasing members (since 0.168.6) + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `erase` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `erase` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. +- Das Symbol bzw. der Begriff `erase` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. +- Das Symbol bzw. der Begriff `erase` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::erase, erase, Iterating an array and erasing elements (since 0.168.6), Iterating an object and erasing members (since 0.168.6) +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/get_value_or.md b/analysis/jsoncons/ref/corelib/json/get_value_or.md new file mode 100644 index 0000000000..d86965c3c4 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/get_value_or.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/get_value_or.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/src/basics_examples.cpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/detail/optional.hpp +- others/jsoncons/test/corelib/src/json_const_pointer_arg_tests.cpp +- others/jsoncons/test/corelib/src/json_object_tests.cpp +- others/jsoncons/test/corelib/src/json_pointer_arg_tests.cpp +- others/jsoncons/test/csv/src/csv_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::get_value_or, get_value_or + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `get_value_or` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `get_value_or` kommt in `others/jsoncons/include/jsoncons/detail/optional.hpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Das Symbol bzw. der Begriff `get_value_or` kommt in `others/jsoncons/test/csv/src/csv_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/src/basics_examples.cpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/detail/optional.hpp +- others/jsoncons/test/corelib/src/json_const_pointer_arg_tests.cpp +- others/jsoncons/test/corelib/src/json_object_tests.cpp +- others/jsoncons/test/corelib/src/json_pointer_arg_tests.cpp +- others/jsoncons/test/csv/src/csv_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::get_value_or, get_value_or +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/insert.md b/analysis/jsoncons/ref/corelib/json/insert.md new file mode 100644 index 0000000000..8a5f5e08c3 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/insert.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/insert.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/encode_json.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons/sink.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::insert, insert, Copy two std::map's into a json + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `insert` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `insert` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. +- Das Symbol bzw. der Begriff `insert` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `insert` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/encode_json.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons/sink.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::insert, insert, Copy two std::map's into a json +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/insert_or_assign.md b/analysis/jsoncons/ref/corelib/json/insert_or_assign.md new file mode 100644 index 0000000000..7c468bda46 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/insert_or_assign.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/insert_or_assign.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/test/corelib/src/issue355_tests.cpp +- others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp +- others/jsoncons/test/thirdparty/catch/catch.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::insert_or_assign, insert_or_assign + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `insert_or_assign` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `insert_or_assign` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. +- Das Symbol bzw. der Begriff `insert_or_assign` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `insert_or_assign` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/issue355_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/test/corelib/src/issue355_tests.cpp +- others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp +- others/jsoncons/test/thirdparty/catch/catch.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::insert_or_assign, insert_or_assign +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/is.md b/analysis/jsoncons/ref/corelib/json/is.md new file mode 100644 index 0000000000..dda5b250a9 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/is.md @@ -0,0 +1,53 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/is.md + +## Zugehörige Implementierung +- others/jsoncons/examples/build/cmake/CMakeLists.txt +- others/jsoncons/examples/src/csv_examples.cpp +- others/jsoncons/examples/src/jsonschema_examples.cpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::is + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/jsonschema_examples.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/build/cmake/CMakeLists.txt` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/jsonschema_examples.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/examples/build/cmake/CMakeLists.txt +- others/jsoncons/examples/src/csv_examples.cpp +- others/jsoncons/examples/src/jsonschema_examples.cpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::is +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/key_value.md b/analysis/jsoncons/ref/corelib/json/key_value.md new file mode 100644 index 0000000000..b761f1db70 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/key_value.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/key_value.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons/staj_iterator.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::key_value, key_value, Accessors + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `key_value` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `key_value` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. +- Das Symbol bzw. der Begriff `jsoncons::key_value` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. +- Das Symbol bzw. der Begriff `key_value` kommt in `others/jsoncons/include/jsoncons/staj_iterator.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_reader_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_constructor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_object_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons/staj_iterator.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::key_value, key_value, Accessors +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/make_array.md b/analysis/jsoncons/ref/corelib/json/make_array.md new file mode 100644 index 0000000000..08837d8b48 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/make_array.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/make_array.md + +## Zugehörige Implementierung +- others/jsoncons/examples/src/array_examples.cpp +- others/jsoncons/examples/src/csv_examples.cpp +- others/jsoncons/examples/src/jsonschema_examples.cpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/test/corelib/src/json_array_tests.cpp +- others/jsoncons/test/corelib/src/json_object_tests.cpp +- others/jsoncons/test/corelib/src/jsoncons_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::make_array, make_array + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `make_array` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Das Symbol bzw. der Begriff `make_array` kommt in `others/jsoncons/test/corelib/src/json_array_tests.cpp` vor. +- Das Symbol bzw. der Begriff `make_array` kommt in `others/jsoncons/test/corelib/src/json_object_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_array_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_object_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/examples/src/array_examples.cpp +- others/jsoncons/examples/src/csv_examples.cpp +- others/jsoncons/examples/src/jsonschema_examples.cpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/test/corelib/src/json_array_tests.cpp +- others/jsoncons/test/corelib/src/json_object_tests.cpp +- others/jsoncons/test/corelib/src/jsoncons_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::make_array, make_array +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/merge.md b/analysis/jsoncons/ref/corelib/json/merge.md new file mode 100644 index 0000000000..d08936ad01 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/merge.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/merge.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/detail/grisu3.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp +- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::merge, merge + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `merge` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `merge` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. +- Das Symbol bzw. der Begriff `merge` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `merge` kommt in `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/detail/grisu3.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp +- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::merge, merge +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/merge_or_update.md b/analysis/jsoncons/ref/corelib/json/merge_or_update.md new file mode 100644 index 0000000000..519516fee8 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/merge_or_update.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/merge_or_update.md + +## Zugehörige Implementierung +- others/jsoncons/examples/src/csv_examples.cpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/test/corelib/src/json_object_tests.cpp +- others/jsoncons/test/corelib/src/json_pointer_arg_tests.cpp +- others/jsoncons/test/corelib/src/ojson_object_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/thirdparty/catch/catch.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::merge_or_update, merge_or_update + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `merge_or_update` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `merge_or_update` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_object_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/examples/src/csv_examples.cpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/test/corelib/src/json_object_tests.cpp +- others/jsoncons/test/corelib/src/json_pointer_arg_tests.cpp +- others/jsoncons/test/corelib/src/ojson_object_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/thirdparty/catch/catch.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::merge_or_update, merge_or_update +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/object_range.md b/analysis/jsoncons/ref/corelib/json/object_range.md new file mode 100644 index 0000000000..5e8dac294f --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/object_range.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/object_range.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/path_node.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::object_range, object_range + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `object_range` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `object_range` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. +- Das Symbol bzw. der Begriff `object_range` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `object_range` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/path_node.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::object_range, object_range +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/operator=.md b/analysis/jsoncons/ref/corelib/json/operator=.md new file mode 100644 index 0000000000..623adb18df --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/operator=.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/operator=.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/allocator_holder.hpp +- others/jsoncons/include/jsoncons/allocator_set.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/conversion_result.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::operator=, operator=, operator[] + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/allocator_holder.hpp +- others/jsoncons/include/jsoncons/allocator_set.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/conversion_result.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::operator=, operator=, operator[] +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/operator_at.md b/analysis/jsoncons/ref/corelib/json/operator_at.md new file mode 100644 index 0000000000..797b153185 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/operator_at.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/operator_at.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/allocator_holder.hpp +- others/jsoncons/include/jsoncons/allocator_set.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/conversion_result.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::operator[], operator[], Notes, operator_at + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. +- Das Symbol bzw. der Begriff `operator[]` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/allocator_holder.hpp +- others/jsoncons/include/jsoncons/allocator_set.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/conversion_result.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::operator[], operator[], Notes, operator_at +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/parse.md b/analysis/jsoncons/ref/corelib/json/parse.md new file mode 100644 index 0000000000..ef1e1d60f7 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/parse.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/parse.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_error.hpp +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/include/jsoncons/json_reader.hpp +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/include/jsoncons/staj_event.hpp +- others/jsoncons/include/jsoncons/staj_event_reader.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::parse, parse + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `parse` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `parse` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `parse` kommt in `others/jsoncons/include/jsoncons/json_error.hpp` vor. +- Das Symbol bzw. der Begriff `parse` kommt in `others/jsoncons/include/jsoncons/json_parser.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_error.hpp +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/include/jsoncons/json_reader.hpp +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/include/jsoncons/staj_event.hpp +- others/jsoncons/include/jsoncons/staj_event_reader.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::parse, parse +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/push_back.md b/analysis/jsoncons/ref/corelib/json/push_back.md new file mode 100644 index 0000000000..d5b14c9cef --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/push_back.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/push_back.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/include/jsoncons/json_encoders.hpp +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::push_back, push_back + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `push_back` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `push_back` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `push_back` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. +- Das Symbol bzw. der Begriff `push_back` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/test_utilities.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/item_event_visitor.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/include/jsoncons/json_encoder.hpp +- others/jsoncons/include/jsoncons/json_encoders.hpp +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::push_back, push_back +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/range.md b/analysis/jsoncons/ref/corelib/json/range.md new file mode 100644 index 0000000000..6af05b820e --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/range.md @@ -0,0 +1,61 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/range.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_exception.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::range, range + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/basic_json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/basic_json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `range` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `range` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. +- Das Symbol bzw. der Begriff `range` kommt in `others/jsoncons/include/jsoncons/json_exception.hpp` vor. +- Das Symbol bzw. der Begriff `range` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_test_suite.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_array.hpp +- others/jsoncons/include/jsoncons/json_exception.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons/json_parser.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::range, range +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/try_emplace.md b/analysis/jsoncons/ref/corelib/json/try_emplace.md new file mode 100644 index 0000000000..1009a525e1 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json/try_emplace.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json/try_emplace.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::try_emplace, try_emplace + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `try_emplace` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `try_emplace` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. +- Das Symbol bzw. der Begriff `try_emplace` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `try_emplace` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/basic_json.hpp +- others/jsoncons/include/jsoncons/json_object.hpp +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::basic_json::try_emplace, try_emplace +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_array_arg.md b/analysis/jsoncons/ref/corelib/json_array_arg.md new file mode 100644 index 0000000000..752fb3f53d --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json_array_arg.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json_array_arg.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::json_array_arg, json_array_arg + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_type.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type.hpp` vorhanden. +- Das Symbol bzw. der Begriff `json_array_arg` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `json_array_arg` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. +- Das Symbol bzw. der Begriff `json_array_arg` kommt in `others/jsoncons/include/jsoncons/json_type.hpp` vor. +- Das Symbol bzw. der Begriff `json_array_arg` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::json_array_arg, json_array_arg +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_array_arg_t.md b/analysis/jsoncons/ref/corelib/json_array_arg_t.md new file mode 100644 index 0000000000..1351d21acb --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json_array_arg_t.md @@ -0,0 +1,46 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json_array_arg_t.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::json_array_arg_t, json_array_arg_t + +## Kurzfazit +- Status: widersprüchlich +- Vertrauensniveau: hoch +- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. + +## Was durch Code belegt ist +- `json_array_arg_t` ist in [others/jsoncons/include/jsoncons/json_type.hpp](others/jsoncons/include/jsoncons/json_type.hpp) definiert. +- Die Doku nennt als Include `jsoncons/semantic_tag.hpp`; dieser Header enthält die Definition nicht. +- Der gezeigte Include-Codeblock ist zudem syntaktisch beschädigt (fehlendes Backtick/fehlerhafte Markup-Sequenz). +- Das Symbol bzw. der Begriff `json_array_arg_t` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `json_array_arg_t` kommt in `others/jsoncons/include/jsoncons/json_type.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die fachliche Beschreibung als Disambiguierungs-Typ für Array-Konstruktoren passt zur Implementierung in `basic_json.hpp`. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. +- Widerspruch: Der dokumentierte Include-Header ist falsch. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. + +## Vorschläge zur Dokumentationsanpassung +- Include auf `#include ` korrigieren. +- Den Codeblock syntaktisch bereinigen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::json_array_arg_t, json_array_arg_t +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_decoder.md b/analysis/jsoncons/ref/corelib/json_decoder.md new file mode 100644 index 0000000000..fe413a49ad --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json_decoder.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json_decoder.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::json_decoder, json_decoder + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_decoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_decoder.hpp` vorhanden. +- Das Symbol bzw. der Begriff `json_decoder` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `jsoncons::json_decoder` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `json_decoder` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_reader_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_test_suite.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_decoder.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::json_decoder, json_decoder +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_error.md b/analysis/jsoncons/ref/corelib/json_error.md new file mode 100644 index 0000000000..aa7b36d52d --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json_error.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json_error.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_error.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::json_errc, json_errc, json_error + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_error.hpp` vorhanden. +- Das Symbol bzw. der Begriff `json_errc` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `json_errc` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `json_errc` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. +- Das Symbol bzw. der Begriff `json_errc` kommt in `others/jsoncons/include/jsoncons/json_encoders.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_error.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::json_errc, json_errc, json_error +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_object_arg.md b/analysis/jsoncons/ref/corelib/json_object_arg.md new file mode 100644 index 0000000000..6018f86bb7 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json_object_arg.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json_object_arg.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::json_object_arg, json_object_arg + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_type.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type.hpp` vorhanden. +- Das Symbol bzw. der Begriff `json_object_arg` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `json_object_arg` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. +- Das Symbol bzw. der Begriff `json_object_arg` kommt in `others/jsoncons/include/jsoncons/json_type.hpp` vor. +- Das Symbol bzw. der Begriff `json_object_arg` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/abort_early_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/json_schema_walk_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::json_object_arg, json_object_arg +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_object_arg_t.md b/analysis/jsoncons/ref/corelib/json_object_arg_t.md new file mode 100644 index 0000000000..e5db5c9663 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json_object_arg_t.md @@ -0,0 +1,48 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json_object_arg_t.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/semantic_tag.hpp +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::json_object_arg_t, json_object_arg_t + +## Kurzfazit +- Status: widersprüchlich +- Vertrauensniveau: hoch +- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. + +## Was durch Code belegt ist +- `json_object_arg_t` ist in [others/jsoncons/include/jsoncons/json_type.hpp](others/jsoncons/include/jsoncons/json_type.hpp) definiert. +- Die Doku nennt als Include `jsoncons/semantic_tag.hpp`; dort ist die Definition nicht vorhanden. +- Der in der Doku verwendete Header `jsoncons/semantic_tag.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/semantic_tag.hpp` vorhanden. +- Das Symbol bzw. der Begriff `json_object_arg_t` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `json_object_arg_t` kommt in `others/jsoncons/include/jsoncons/json_type.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die Beschreibung als Disambiguierungs-Typ für Objekt-Konstruktoren passt zu den Konstruktoren in `basic_json.hpp`. +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. +- Widerspruch: Der dokumentierte Include-Header ist falsch. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. + +## Vorschläge zur Dokumentationsanpassung +- Include auf `#include ` korrigieren. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/semantic_tag.hpp +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::json_object_arg_t, json_object_arg_t +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_type.md b/analysis/jsoncons/ref/corelib/json_type.md new file mode 100644 index 0000000000..e858e1f91a --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json_type.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json_type.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::json_type, json_type + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_type.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type.hpp` vorhanden. +- Das Symbol bzw. der Begriff `json_type` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. +- Das Symbol bzw. der Begriff `json_type` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `json_type` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `json_type` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/issues/draft2019-09/anyof.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/jsoncons_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_type.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::json_type, json_type +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_type_traits/Eigen-Matrix-example.md b/analysis/jsoncons/ref/corelib/json_type_traits/Eigen-Matrix-example.md new file mode 100644 index 0000000000..52a0e59aaf --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json_type_traits/Eigen-Matrix-example.md @@ -0,0 +1,46 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json_type_traits/Eigen-Matrix-example.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/json_type_traits.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: Eigen::Matrix examples, Eigen-Matrix-example + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: mittel +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. +- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/json_type_traits.hpp +- others/jsoncons/test/corelib/src +- Symbole: Eigen::Matrix examples, Eigen-Matrix-example +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_type_traits/built-in-specializations.md b/analysis/jsoncons/ref/corelib/json_type_traits/built-in-specializations.md new file mode 100644 index 0000000000..2ce1d7c508 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json_type_traits/built-in-specializations.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json_type_traits/built-in-specializations.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp +- others/jsoncons/include/jsoncons/json_type_traits.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: integer, duration + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `integer` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `integer` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. +- Das Symbol bzw. der Begriff `integer` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `integer` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp +- others/jsoncons/include/jsoncons/json_type_traits.hpp +- others/jsoncons/test/corelib/src +- Symbole: integer, duration +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_type_traits/custom-specializations.md b/analysis/jsoncons/ref/corelib/json_type_traits/custom-specializations.md new file mode 100644 index 0000000000..ba3fdf4a22 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json_type_traits/custom-specializations.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json_type_traits/custom-specializations.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/json_type_traits.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: Extend json_type_traits to support boost::gregorian dates. + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/jsonschema_examples.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/build/cmake/CMakeLists.txt` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/json_type_traits.hpp +- others/jsoncons/test/corelib/src +- Symbole: Extend json_type_traits to support boost::gregorian dates. +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_type_traits/json_type_traits.md b/analysis/jsoncons/ref/corelib/json_type_traits/json_type_traits.md new file mode 100644 index 0000000000..bef6d38729 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/json_type_traits/json_type_traits.md @@ -0,0 +1,53 @@ +# Analyse: others/jsoncons/doc/ref/corelib/json_type_traits/json_type_traits.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_type_traits.hpp +- others/jsoncons/test/corelib/src/legacy_json_type_traits_tests.cpp +- others/jsoncons/test/corelib/src/reflect/encode_traits_tests.cpp +- others/jsoncons/test/corelib/src/try_decode_json_tests.cpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::json_type_traits, json_type_traits + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_type_traits.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type_traits.hpp` vorhanden. +- Das Symbol bzw. der Begriff `json_type_traits` kommt in `others/jsoncons/include/jsoncons/json_type_traits.hpp` vor. +- Das Symbol bzw. der Begriff `json_type_traits` kommt in `others/jsoncons/include/jsoncons/reflect/encode_traits.hpp` vor. +- Das Symbol bzw. der Begriff `json_type_traits` kommt in `others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp` vor. +- Das Symbol bzw. der Begriff `jsoncons::json_type_traits` kommt in `others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/legacy_json_type_traits_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/try_decode_json_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_type_traits.hpp +- others/jsoncons/test/corelib/src/legacy_json_type_traits_tests.cpp +- others/jsoncons/test/corelib/src/reflect/encode_traits_tests.cpp +- others/jsoncons/test/corelib/src/try_decode_json_tests.cpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::json_type_traits, json_type_traits +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/line_split_kind.md b/analysis/jsoncons/ref/corelib/line_split_kind.md new file mode 100644 index 0000000000..d5902bd4d1 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/line_split_kind.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/corelib/line_split_kind.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/test/corelib/src/json_line_split_tests.cpp +- others/jsoncons/test/corelib/src/json_options_tests.cpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::line_split_kind, line_split_kind + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. +- Das Symbol bzw. der Begriff `line_split_kind` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. +- Das Symbol bzw. der Begriff `line_split_kind` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `jsoncons::line_split_kind` kommt in `others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp` vor. +- Das Symbol bzw. der Begriff `line_split_kind` kommt in `others/jsoncons/test/corelib/src/json_line_split_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_line_split_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_options_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/test/corelib/src/json_line_split_tests.cpp +- others/jsoncons/test/corelib/src/json_options_tests.cpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::line_split_kind, line_split_kind +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/ojson.md b/analysis/jsoncons/ref/corelib/ojson.md new file mode 100644 index 0000000000..89c1b87647 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/ojson.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/ojson.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::ojson, ojson + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `jsoncons::ojson` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `ojson` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `ojson` kommt in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp` vor. +- Das Symbol bzw. der Begriff `jsoncons::ojson` kommt in `others/jsoncons/test/toon/src/decode_toon_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::ojson, ojson +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/read_error.md b/analysis/jsoncons/ref/corelib/read_error.md new file mode 100644 index 0000000000..48a2f0ef36 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/read_error.md @@ -0,0 +1,45 @@ +# Analyse: others/jsoncons/doc/ref/corelib/read_error.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/ser_utils.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::read_error, read_error, Accessors + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: hoch +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/ser_utils.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/ser_utils.hpp` vorhanden. +- Das Symbol bzw. der Begriff `read_error` kommt in `others/jsoncons/include/jsoncons/ser_utils.hpp` vor. +- Das Symbol bzw. der Begriff `Accessors` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. +- Das Symbol bzw. der Begriff `Accessors` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. +- Das Symbol bzw. der Begriff `read_error` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/ser_utils.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::read_error, read_error, Accessors +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/read_result.md b/analysis/jsoncons/ref/corelib/read_result.md new file mode 100644 index 0000000000..41ce232fd1 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/read_result.md @@ -0,0 +1,45 @@ +# Analyse: others/jsoncons/doc/ref/corelib/read_result.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/ser_utils.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::read_result, read_result, Accessors + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: hoch +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/ser_utils.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/ser_utils.hpp` vorhanden. +- Das Symbol bzw. der Begriff `read_result` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Das Symbol bzw. der Begriff `read_result` kommt in `others/jsoncons/include/jsoncons/ser_utils.hpp` vor. +- Das Symbol bzw. der Begriff `read_result` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `read_result` kommt in `others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/ser_utils.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::read_result, read_result, Accessors +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/reflect.md b/analysis/jsoncons/ref/corelib/reflect.md new file mode 100644 index 0000000000..b71153d58c --- /dev/null +++ b/analysis/jsoncons/ref/corelib/reflect.md @@ -0,0 +1,43 @@ +# Analyse: others/jsoncons/doc/ref/corelib/reflect.md + +## Zugehörige Implementierung +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: Legacy jsoncons::json_type_traits, json_type_traits, jsoncons::reflect::json_conv_traits, json_conv_traits + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `json_conv_traits` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `reflect` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Das Symbol bzw. der Begriff `reflect` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. +- Das Symbol bzw. der Begriff `reflect` kommt in `others/jsoncons/include/jsoncons/json.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/legacy_json_type_traits_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/try_decode_json_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/test/corelib/src +- Symbole: Legacy jsoncons::json_type_traits, json_type_traits, jsoncons::reflect::json_conv_traits, json_conv_traits +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/reflect/Eigen-Matrix-example.md b/analysis/jsoncons/ref/corelib/reflect/Eigen-Matrix-example.md new file mode 100644 index 0000000000..a3982edb20 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/reflect/Eigen-Matrix-example.md @@ -0,0 +1,52 @@ +# Analyse: others/jsoncons/doc/ref/corelib/reflect/Eigen-Matrix-example.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp +- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: Eigen::Matrix examples, Eigen-Matrix-example + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: hoch +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. +- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp +- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp +- others/jsoncons/test/corelib/src +- Symbole: Eigen::Matrix examples, Eigen-Matrix-example +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/reflect/json_conv_traits.md b/analysis/jsoncons/ref/corelib/reflect/json_conv_traits.md new file mode 100644 index 0000000000..aacea6b1c3 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/reflect/json_conv_traits.md @@ -0,0 +1,55 @@ +# Analyse: others/jsoncons/doc/ref/corelib/reflect/json_conv_traits.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::reflect::json_conv_traits, json_conv_traits, Remarks + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/reflect/json_conv_traits.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `json_conv_traits` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `json_conv_traits` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. +- Das Symbol bzw. der Begriff `json_conv_traits` kommt in `others/jsoncons/include/jsoncons/reflect/decode_traits.hpp` vor. +- Das Symbol bzw. der Begriff `json_conv_traits` kommt in `others/jsoncons/include/jsoncons/reflect/encode_traits.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::reflect::json_conv_traits, json_conv_traits, Remarks +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/reflect/reflect-traits-gen.md b/analysis/jsoncons/ref/corelib/reflect/reflect-traits-gen.md new file mode 100644 index 0000000000..ceee5aecc2 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/reflect/reflect-traits-gen.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/corelib/reflect/reflect-traits-gen.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_type_traits.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp +- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: Example with std::shared_ptr, std::unique_ptr and std::optional + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_type_traits.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type_traits.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `optional` kommt in `others/jsoncons/include/jsoncons/staj_iterator.hpp` vor. +- Das Symbol bzw. der Begriff `optional` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `optional` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp` vor. +- Das Symbol bzw. der Begriff `optional` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_type_traits.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp +- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp +- others/jsoncons/test/corelib/src +- Symbole: Example with std::shared_ptr, std::unique_ptr and std::optional +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/reflect/uses-allocator-construction-example.md b/analysis/jsoncons/ref/corelib/reflect/uses-allocator-construction-example.md new file mode 100644 index 0000000000..0d57b0b67b --- /dev/null +++ b/analysis/jsoncons/ref/corelib/reflect/uses-allocator-construction-example.md @@ -0,0 +1,52 @@ +# Analyse: others/jsoncons/doc/ref/corelib/reflect/uses-allocator-construction-example.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp +- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: Uses-allocator construction example (requires 1.4.0), uses-allocator-construction-example + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: hoch +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. +- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp +- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp +- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp +- others/jsoncons/test/corelib/src +- Symbole: Uses-allocator construction example (requires 1.4.0), uses-allocator-construction-example +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/rename_object_key_filter.md b/analysis/jsoncons/ref/corelib/rename_object_key_filter.md new file mode 100644 index 0000000000..4a9f77a4cb --- /dev/null +++ b/analysis/jsoncons/ref/corelib/rename_object_key_filter.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/rename_object_key_filter.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_filter.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::rename_object_key_filter, rename_object_key_filter + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_filter.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_filter.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `rename_object_key_filter` kommt in `others/jsoncons/include/jsoncons/json_filter.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_filter.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::rename_object_key_filter, rename_object_key_filter +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/semantic_tag.md b/analysis/jsoncons/ref/corelib/semantic_tag.md new file mode 100644 index 0000000000..0084adb482 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/semantic_tag.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/semantic_tag.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/semantic_tag.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::semantic_tag, semantic_tag + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/semantic_tag.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/semantic_tag.hpp` vorhanden. +- Das Symbol bzw. der Begriff `semantic_tag` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `semantic_tag` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `semantic_tag` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. +- Das Symbol bzw. der Begriff `semantic_tag` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_event_reader_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/semantic_tag.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::semantic_tag, semantic_tag +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/ser_context.md b/analysis/jsoncons/ref/corelib/ser_context.md new file mode 100644 index 0000000000..8b9fe7f011 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/ser_context.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/ser_context.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/ser_utils.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::ser_context, ser_context + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/ser_utils.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/ser_utils.hpp` vorhanden. +- Das Symbol bzw. der Begriff `ser_context` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `ser_context` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `ser_context` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. +- Das Symbol bzw. der Begriff `ser_context` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/ser_utils.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::ser_context, ser_context +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/ser_error.md b/analysis/jsoncons/ref/corelib/ser_error.md new file mode 100644 index 0000000000..e8afa36263 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/ser_error.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/ser_error.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json_exception.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::ser_error, ser_error, Inherited from std::system_error, system_error + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json_exception.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_exception.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `ser_error` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Das Symbol bzw. der Begriff `ser_error` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json_exception.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::ser_error, ser_error, Inherited from std::system_error, system_error +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/spaces_option.md b/analysis/jsoncons/ref/corelib/spaces_option.md new file mode 100644 index 0000000000..381cf3a315 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/spaces_option.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/spaces_option.md + +## Zugehörige Implementierung +- others/jsoncons/test/corelib/src/json_encoder_tests.cpp +- others/jsoncons/test/corelib/src/json_line_split_tests.cpp +- others/jsoncons/test/corelib/src/json_options_tests.cpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::spaces_option, spaces_option + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `spaces_option` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. +- Das Symbol bzw. der Begriff `spaces_option` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `spaces_option` kommt in `others/jsoncons/test/corelib/src/json_encoder_tests.cpp` vor. +- Das Symbol bzw. der Begriff `spaces_option` kommt in `others/jsoncons/test/corelib/src/json_line_split_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_encoder_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_line_split_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_options_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/test/corelib/src/json_encoder_tests.cpp +- others/jsoncons/test/corelib/src/json_line_split_tests.cpp +- others/jsoncons/test/corelib/src/json_options_tests.cpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::spaces_option, spaces_option +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/staj_array_iterator.md b/analysis/jsoncons/ref/corelib/staj_array_iterator.md new file mode 100644 index 0000000000..4f9ee59325 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/staj_array_iterator.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/staj_array_iterator.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/staj_iterator.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::staj_array_iterator, staj_array_iterator + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/staj_iterator.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/staj_iterator.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `staj_array_iterator` kommt in `others/jsoncons/include/jsoncons/staj_iterator.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/staj_iterator.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::staj_array_iterator, staj_array_iterator +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/staj_cursor.md b/analysis/jsoncons/ref/corelib/staj_cursor.md new file mode 100644 index 0000000000..0979774424 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/staj_cursor.md @@ -0,0 +1,45 @@ +# Analyse: others/jsoncons/doc/ref/corelib/staj_cursor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::staj_cursor, staj_cursor, Destructor + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: hoch +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/staj_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/staj_cursor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `staj_cursor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `staj_cursor` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `staj_cursor` kommt in `others/jsoncons/include/jsoncons/staj_iterator.hpp` vor. +- Das Symbol bzw. der Begriff `staj_cursor` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::staj_cursor, staj_cursor, Destructor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/staj_event_type.md b/analysis/jsoncons/ref/corelib/staj_event_type.md new file mode 100644 index 0000000000..d10c1e55da --- /dev/null +++ b/analysis/jsoncons/ref/corelib/staj_event_type.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/staj_event_type.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::staj_event_type, staj_event_type + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/staj_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/staj_cursor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `staj_event_type` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `staj_event_type` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `staj_event_type` kommt in `others/jsoncons/include/jsoncons/staj_event.hpp` vor. +- Das Symbol bzw. der Begriff `staj_event_type` kommt in `others/jsoncons/include/jsoncons/staj_event_reader.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_event_reader_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/staj_cursor.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::staj_event_type, staj_event_type +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/staj_object_iterator.md b/analysis/jsoncons/ref/corelib/staj_object_iterator.md new file mode 100644 index 0000000000..8e4200dec7 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/staj_object_iterator.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/staj_object_iterator.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/staj_iterator.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::staj_object_iterator, staj_object_iterator + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/staj_iterator.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/staj_iterator.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `staj_object_iterator` kommt in `others/jsoncons/include/jsoncons/staj_iterator.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/staj_iterator_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/staj_iterator.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::staj_object_iterator, staj_object_iterator +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/utility/bigint.md b/analysis/jsoncons/ref/corelib/utility/bigint.md new file mode 100644 index 0000000000..17a93492a5 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/utility/bigint.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/corelib/utility/bigint.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/utility/bigint.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::bigint, bigint, Constructor, Assignment, Accessors + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/utility/bigint.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/utility/bigint.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `bigint` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `bigint` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. +- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `bigint` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/utility/bigint.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::bigint, bigint, Constructor, Assignment, Accessors +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/utility/uri.md b/analysis/jsoncons/ref/corelib/utility/uri.md new file mode 100644 index 0000000000..fbb0a4330b --- /dev/null +++ b/analysis/jsoncons/ref/corelib/utility/uri.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/corelib/utility/uri.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/utility/uri.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/include/jsoncons/semantic_tag.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_parser.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::uri, uri, Constructor, Assignment + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/utility/uri.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/utility/uri.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `uri` kommt in `others/jsoncons/include/jsoncons/semantic_tag.hpp` vor. +- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/utility/uri.hpp +- others/jsoncons/include/jsoncons/json_cursor.hpp +- others/jsoncons/include/jsoncons/json_options.hpp +- others/jsoncons/include/jsoncons/semantic_tag.hpp +- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp +- others/jsoncons/include/jsoncons_ext/cbor/cbor_parser.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::uri, uri, Constructor, Assignment +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/wjson.md b/analysis/jsoncons/ref/corelib/wjson.md new file mode 100644 index 0000000000..97b1830feb --- /dev/null +++ b/analysis/jsoncons/ref/corelib/wjson.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/wjson.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::wjson, wjson + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `jsoncons::wjson` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `wjson` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `wjson` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `wjson` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::wjson, wjson +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/wojson.md b/analysis/jsoncons/ref/corelib/wojson.md new file mode 100644 index 0000000000..a6676fc390 --- /dev/null +++ b/analysis/jsoncons/ref/corelib/wojson.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/corelib/wojson.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src/json_literal_operator_tests.cpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::wojson, wojson + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `jsoncons::wojson` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `wojson` kommt in `others/jsoncons/test/corelib/src/json_literal_operator_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/corelib/src/json_literal_operator_tests.cpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::wojson, wojson +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/write_result.md b/analysis/jsoncons/ref/corelib/write_result.md new file mode 100644 index 0000000000..71e8c7ad4d --- /dev/null +++ b/analysis/jsoncons/ref/corelib/write_result.md @@ -0,0 +1,45 @@ +# Analyse: others/jsoncons/doc/ref/corelib/write_result.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/ser_utils.hpp +- others/jsoncons/test/corelib/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::write_result, write_result, Accessors + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: hoch +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/ser_utils.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/ser_utils.hpp` vorhanden. +- Das Symbol bzw. der Begriff `write_result` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `write_result` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. +- Das Symbol bzw. der Begriff `write_result` kommt in `others/jsoncons/include/jsoncons/ser_utils.hpp` vor. +- Das Symbol bzw. der Begriff `write_result` kommt in `others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/ser_utils.hpp +- others/jsoncons/test/corelib/src +- Symbole: jsoncons::write_result, write_result, Accessors +- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/csv/basic_csv_cursor.md b/analysis/jsoncons/ref/csv/basic_csv_cursor.md new file mode 100644 index 0000000000..e7972a7ae3 --- /dev/null +++ b/analysis/jsoncons/ref/csv/basic_csv_cursor.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/csv/basic_csv_cursor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp +- others/jsoncons/test/csv/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::basic_csv_cursor, basic_csv_cursor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/csv/csv_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp +- others/jsoncons/test/csv/src +- Symbole: jsoncons::csv::basic_csv_cursor, basic_csv_cursor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/basic_csv_encoder.md b/analysis/jsoncons/ref/csv/basic_csv_encoder.md new file mode 100644 index 0000000000..e38a69451c --- /dev/null +++ b/analysis/jsoncons/ref/csv/basic_csv_encoder.md @@ -0,0 +1,53 @@ +# Analyse: others/jsoncons/doc/ref/csv/basic_csv_encoder.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/test/csv/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::basic_csv_encoder, basic_csv_encoder, Destructor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/csv/csv_encoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/test/csv/src +- Symbole: jsoncons::csv::basic_csv_encoder, basic_csv_encoder, Destructor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/basic_csv_options.md b/analysis/jsoncons/ref/csv/basic_csv_options.md new file mode 100644 index 0000000000..23621aad25 --- /dev/null +++ b/analysis/jsoncons/ref/csv/basic_csv_options.md @@ -0,0 +1,53 @@ +# Analyse: others/jsoncons/doc/ref/csv/basic_csv_options.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp +- others/jsoncons/test/csv/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::basic_csv_options, basic_csv_options, Setters + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/csv/csv_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/csv/csv.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp +- others/jsoncons/test/csv/src +- Symbole: jsoncons::csv::basic_csv_options, basic_csv_options, Setters +- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/basic_csv_reader.md b/analysis/jsoncons/ref/csv/basic_csv_reader.md new file mode 100644 index 0000000000..c69f9947c4 --- /dev/null +++ b/analysis/jsoncons/ref/csv/basic_csv_reader.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/csv/basic_csv_reader.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/csv/csv_reader.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/test/csv/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::basic_csv_reader, basic_csv_reader + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/csv/csv_reader.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv_reader.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_reader_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/csv/csv_reader.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/test/csv/src +- Symbole: jsoncons::csv::basic_csv_reader, basic_csv_reader +- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/csv.md b/analysis/jsoncons/ref/csv/csv.md new file mode 100644 index 0000000000..3c38d2ad9d --- /dev/null +++ b/analysis/jsoncons/ref/csv/csv.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/csv/csv.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_error.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_reader.hpp +- others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp +- others/jsoncons/test/csv/src +- Relevante Klassen/Funktionen/Symbole: csv + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/csv/csv.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vorhanden. +- Das Symbol bzw. der Begriff `csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vor. +- Das Symbol bzw. der Begriff `csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp` vor. +- Das Symbol bzw. der Begriff `csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_error.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_error.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_reader.hpp +- others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp +- others/jsoncons/test/csv/src +- Symbole: csv +- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/csv_mapping_kind.md b/analysis/jsoncons/ref/csv/csv_mapping_kind.md new file mode 100644 index 0000000000..d679a1aba1 --- /dev/null +++ b/analysis/jsoncons/ref/csv/csv_mapping_kind.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/csv/csv_mapping_kind.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp +- others/jsoncons/test/csv/src/csv_cursor_tests.cpp +- others/jsoncons/test/csv/src/csv_reader_tests.cpp +- others/jsoncons/test/csv/src/csv_subfield_tests.cpp +- others/jsoncons/test/csv/src/csv_tests.cpp +- others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp +- others/jsoncons/test/csv/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::csv_mapping_kind, csv_mapping_kind + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/csv/csv_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vorhanden. +- Das Symbol bzw. der Begriff `csv_mapping_kind` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vor. +- Das Symbol bzw. der Begriff `csv_mapping_kind` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp` vor. +- Das Symbol bzw. der Begriff `csv_mapping_kind` kommt in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp` vor. +- Das Symbol bzw. der Begriff `csv_mapping_kind` kommt in `others/jsoncons/test/csv/src/csv_cursor_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_reader_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp +- others/jsoncons/test/csv/src/csv_cursor_tests.cpp +- others/jsoncons/test/csv/src/csv_reader_tests.cpp +- others/jsoncons/test/csv/src/csv_subfield_tests.cpp +- others/jsoncons/test/csv/src/csv_tests.cpp +- others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp +- others/jsoncons/test/csv/src +- Symbole: jsoncons::csv::csv_mapping_kind, csv_mapping_kind +- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/decode_csv.md b/analysis/jsoncons/ref/csv/decode_csv.md new file mode 100644 index 0000000000..7acde4ddbb --- /dev/null +++ b/analysis/jsoncons/ref/csv/decode_csv.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/csv/decode_csv.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp +- others/jsoncons/test/csv/src/csv_subfield_tests.cpp +- others/jsoncons/test/csv/src/csv_tests.cpp +- others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp +- others/jsoncons/test/csv/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::decode_csv, decode_csv, Decode a CSV file with type inference (default) + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/csv/csv.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `decode_csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vor. +- Das Symbol bzw. der Begriff `decode_csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp` vor. +- Das Symbol bzw. der Begriff `decode_csv` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp +- others/jsoncons/test/csv/src/csv_subfield_tests.cpp +- others/jsoncons/test/csv/src/csv_tests.cpp +- others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp +- others/jsoncons/test/csv/src +- Symbole: jsoncons::csv::decode_csv, decode_csv, Decode a CSV file with type inference (default) +- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/encode_csv.md b/analysis/jsoncons/ref/csv/encode_csv.md new file mode 100644 index 0000000000..72f75f6027 --- /dev/null +++ b/analysis/jsoncons/ref/csv/encode_csv.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/csv/encode_csv.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/src/csv_examples.cpp +- others/jsoncons/include/jsoncons_ext/csv/encode_csv.hpp +- others/jsoncons/test/csv/src/csv_cursor_tests.cpp +- others/jsoncons/test/csv/src/csv_tests.cpp +- others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp +- others/jsoncons/test/csv/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::encode_csv, encode_csv, Encode a json array of arrays (n_rows format), Encode a json object of name-array members (m_columns format) + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/csv/csv.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `encode_csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vor. +- Das Symbol bzw. der Begriff `encode_csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/encode_csv.hpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Das Symbol bzw. der Begriff `encode_csv` kommt in `others/jsoncons/test/csv/src/csv_cursor_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/csv/csv.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/src/csv_examples.cpp +- others/jsoncons/include/jsoncons_ext/csv/encode_csv.hpp +- others/jsoncons/test/csv/src/csv_cursor_tests.cpp +- others/jsoncons/test/csv/src/csv_tests.cpp +- others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp +- others/jsoncons/test/csv/src +- Symbole: jsoncons::csv::encode_csv, encode_csv, Encode a json array of arrays (n_rows format), Encode a json object of name-array members (m_columns format) +- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/quote_style_kind.md b/analysis/jsoncons/ref/csv/quote_style_kind.md new file mode 100644 index 0000000000..d2f21f8e9b --- /dev/null +++ b/analysis/jsoncons/ref/csv/quote_style_kind.md @@ -0,0 +1,52 @@ +# Analyse: others/jsoncons/doc/ref/csv/quote_style_kind.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/examples/src/csv_examples.cpp +- others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp +- others/jsoncons/test/csv/src/csv_tests.cpp +- others/jsoncons/test/csv/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::quote_style_kind, quote_style_kind + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/csv/csv_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vorhanden. +- Das Symbol bzw. der Begriff `quote_style_kind` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp` vor. +- Das Symbol bzw. der Begriff `quote_style_kind` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vor. +- Das Symbol bzw. der Begriff `quote_style_kind` kommt in `others/jsoncons/test/csv/src/csv_tests.cpp` vor. +- Das Symbol bzw. der Begriff `quote_style_kind` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp +- others/jsoncons/examples/src/csv_examples.cpp +- others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp +- others/jsoncons/test/csv/src/csv_tests.cpp +- others/jsoncons/test/csv/src +- Symbole: jsoncons::csv::quote_style_kind, quote_style_kind +- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/deprecated.md b/analysis/jsoncons/ref/deprecated.md new file mode 100644 index 0000000000..bd7ee24361 --- /dev/null +++ b/analysis/jsoncons/ref/deprecated.md @@ -0,0 +1,39 @@ +# Analyse: others/jsoncons/doc/ref/deprecated.md + +## Zugehörige Implementierung +- Relevante Klassen/Funktionen/Symbole: deprecated + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `deprecated` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `deprecated` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_type.hpp` vor. +- Das Symbol bzw. der Begriff `deprecated` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/draft201909/schema_draft201909.hpp` vor. +- Das Symbol bzw. der Begriff `deprecated` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/draft202012/schema_draft202012.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- Symbole: deprecated +- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/ref/jmespath/jmespath.md b/analysis/jsoncons/ref/jmespath/jmespath.md new file mode 100644 index 0000000000..f49f61ebe0 --- /dev/null +++ b/analysis/jsoncons/ref/jmespath/jmespath.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/jmespath/jmespath.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp +- others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/jmespath/src +- Relevante Klassen/Funktionen/Symbole: Classes, Functions + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `jmespath_expression` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `jmespath` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp` vor. +- Das Symbol bzw. der Begriff `jmespath_expression` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `Classes` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `search()` in [others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp](others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp) kompiliert den Ausdruck pro Aufruf neu. Warum potenziell teuer: Wiederholtes Parsen/Kompilieren desselben JMESPath-Ausdrucks erzeugt vermeidbare Arbeit. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jmespath_expression` via `make_expression`. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für wiederkehrende JMESPath-Ausdrücke ist der Datenfluss klarer, wenn die Expression einmal kompiliert und danach nur noch ausgewertet wird. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp +- others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/jmespath/src +- Symbole: Classes, Functions +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jmespath/src diff --git a/analysis/jsoncons/ref/jmespath/jmespath_errc.md b/analysis/jsoncons/ref/jmespath/jmespath_errc.md new file mode 100644 index 0000000000..2a4d9708f5 --- /dev/null +++ b/analysis/jsoncons/ref/jmespath/jmespath_errc.md @@ -0,0 +1,55 @@ +# Analyse: others/jsoncons/doc/ref/jmespath/jmespath_errc.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp +- others/jsoncons/examples/src/jmespath_custom_function_examples.cpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp +- others/jsoncons/test/jmespath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jmespath::jmespath_errc, jmespath_errc + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp` vorhanden. +- Das Symbol bzw. der Begriff `jmespath_errc` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `jsoncons::jmespath::jmespath_errc` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp` vor. +- Das Symbol bzw. der Begriff `jmespath_errc` kommt in `others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp` vor. +- Das Symbol bzw. der Begriff `jmespath_errc` kommt in `others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/jmespath_custom_function_examples.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp +- others/jsoncons/examples/src/jmespath_custom_function_examples.cpp +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp +- others/jsoncons/test/jmespath/src +- Symbole: jsoncons::jmespath::jmespath_errc, jmespath_errc +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jmespath/src diff --git a/analysis/jsoncons/ref/jmespath/jmespath_error.md b/analysis/jsoncons/ref/jmespath/jmespath_error.md new file mode 100644 index 0000000000..c2d3eb4a3e --- /dev/null +++ b/analysis/jsoncons/ref/jmespath/jmespath_error.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/jmespath/jmespath_error.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp +- others/jsoncons/test/jmespath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jmespath::jmespath_error, jmespath_error, Inherited from std::system_error, system_error + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp` vorhanden. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp +- others/jsoncons/test/jmespath/src +- Symbole: jsoncons::jmespath::jmespath_error, jmespath_error, Inherited from std::system_error, system_error +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jmespath/src diff --git a/analysis/jsoncons/ref/jmespath/jmespath_expression.md b/analysis/jsoncons/ref/jmespath/jmespath_expression.md new file mode 100644 index 0000000000..38b8145de0 --- /dev/null +++ b/analysis/jsoncons/ref/jmespath/jmespath_expression.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/jmespath/jmespath_expression.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/examples/src/jmespath_examples.cpp +- others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp +- others/jsoncons/test/jmespath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jmespath::jmespath_expression, jmespath_expression + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `jmespath_expression` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `Member types` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. +- Das Symbol bzw. der Begriff `jmespath_expression` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `search()` in [others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp](others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp) kompiliert den Ausdruck pro Aufruf neu. Warum potenziell teuer: Wiederholtes Parsen/Kompilieren desselben JMESPath-Ausdrucks erzeugt vermeidbare Arbeit. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jmespath_expression` via `make_expression`. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/examples/src/jmespath_examples.cpp +- others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp +- others/jsoncons/test/jmespath/src +- Symbole: jsoncons::jmespath::jmespath_expression, jmespath_expression +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jmespath/src diff --git a/analysis/jsoncons/ref/jmespath/make_expression.md b/analysis/jsoncons/ref/jmespath/make_expression.md new file mode 100644 index 0000000000..44478f94dd --- /dev/null +++ b/analysis/jsoncons/ref/jmespath/make_expression.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/jmespath/make_expression.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/test/jmespath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jmespath::make_expression, make_expression + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `make_expression` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `make_expression` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. +- Das Symbol bzw. der Begriff `make_expression` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `search()` in [others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp](others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp) kompiliert den Ausdruck pro Aufruf neu. Warum potenziell teuer: Wiederholtes Parsen/Kompilieren desselben JMESPath-Ausdrucks erzeugt vermeidbare Arbeit. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jmespath_expression` via `make_expression`. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für wiederkehrende JMESPath-Ausdrücke ist der Datenfluss klarer, wenn die Expression einmal kompiliert und danach nur noch ausgewertet wird. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/test/jmespath/src +- Symbole: jsoncons::jmespath::make_expression, make_expression +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jmespath/src diff --git a/analysis/jsoncons/ref/jmespath/search.md b/analysis/jsoncons/ref/jmespath/search.md new file mode 100644 index 0000000000..c81a96375c --- /dev/null +++ b/analysis/jsoncons/ref/jmespath/search.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/jmespath/search.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/jmespath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jmespath::search, search + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `search` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `search` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Das Symbol bzw. der Begriff `search` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp` vor. +- Das Symbol bzw. der Begriff `search` kommt in `others/jsoncons/include/jsoncons/detail/string_view.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `search()` in [others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp](others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp) kompiliert den Ausdruck pro Aufruf neu. Warum potenziell teuer: Wiederholtes Parsen/Kompilieren desselben JMESPath-Ausdrucks erzeugt vermeidbare Arbeit. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jmespath_expression` via `make_expression`. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für wiederkehrende JMESPath-Ausdrücke ist der Datenfluss klarer, wenn die Expression einmal kompiliert und danach nur noch ausgewertet wird. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp +- others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp +- others/jsoncons/test/jmespath/src/jmespath_tests.cpp +- others/jsoncons/test/jmespath/src +- Symbole: jsoncons::jmespath::search, search +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jmespath/src diff --git a/analysis/jsoncons/ref/jsonpatch/apply_patch.md b/analysis/jsoncons/ref/jsonpatch/apply_patch.md new file mode 100644 index 0000000000..70fac622bc --- /dev/null +++ b/analysis/jsoncons/ref/jsonpatch/apply_patch.md @@ -0,0 +1,55 @@ +# Analyse: others/jsoncons/doc/ref/jsonpatch/apply_patch.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/src/jsonpatch_examples.cpp +- others/jsoncons/test/jsonpatch/src/jsonpatch_test_suite.cpp +- others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp +- others/jsoncons/test/jsonpatch/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpatch::apply_patch, apply_patch + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpatch/jsonpatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `apply_patch` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Das Symbol bzw. der Begriff `apply_patch` kommt in `others/jsoncons/test/jsonschema/src/jsonschema_defaults_tests.cpp` vor. +- Das Symbol bzw. der Begriff `apply_patch` kommt in `others/jsoncons/test/jsonpatch/src/jsonpatch_test_suite.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/src/jsonpatch_examples.cpp +- others/jsoncons/test/jsonpatch/src/jsonpatch_test_suite.cpp +- others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp +- others/jsoncons/test/jsonpatch/src +- Symbole: jsoncons::jsonpatch::apply_patch, apply_patch +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpatch/src diff --git a/analysis/jsoncons/ref/jsonpatch/from_diff.md b/analysis/jsoncons/ref/jsonpatch/from_diff.md new file mode 100644 index 0000000000..e26b77cc63 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpatch/from_diff.md @@ -0,0 +1,53 @@ +# Analyse: others/jsoncons/doc/ref/jsonpatch/from_diff.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/src/jsonpatch_examples.cpp +- others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp +- others/jsoncons/test/jsonpatch/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpatch::from_diff, from_diff + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpatch/jsonpatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vor. +- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp` vor. +- Das Symbol bzw. der Begriff `jsoncons::jsonpatch::from_diff` kommt in `others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/src/jsonpatch_examples.cpp +- others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp +- others/jsoncons/test/jsonpatch/src +- Symbole: jsoncons::jsonpatch::from_diff, from_diff +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpatch/src diff --git a/analysis/jsoncons/ref/jsonpatch/jsonpatch.md b/analysis/jsoncons/ref/jsonpatch/jsonpatch.md new file mode 100644 index 0000000000..40624147a2 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpatch/jsonpatch.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/jsonpatch/jsonpatch.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp +- others/jsoncons/test/jsonpatch/src +- Relevante Klassen/Funktionen/Symbole: jsonpatch + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpatch/jsonpatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vorhanden. +- Das Symbol bzw. der Begriff `jsonpatch` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Das Symbol bzw. der Begriff `jsonpatch` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vor. +- Das Symbol bzw. der Begriff `jsonpatch` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `jsonpatch` kommt in `others/jsoncons/test/jsonschema/src/custom_message_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp +- others/jsoncons/test/jsonpatch/src +- Symbole: jsonpatch +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpatch/src diff --git a/analysis/jsoncons/ref/jsonpatch/jsonpatch_errc.md b/analysis/jsoncons/ref/jsonpatch/jsonpatch_errc.md new file mode 100644 index 0000000000..bc0519fefc --- /dev/null +++ b/analysis/jsoncons/ref/jsonpatch/jsonpatch_errc.md @@ -0,0 +1,48 @@ +# Analyse: others/jsoncons/doc/ref/jsonpatch/jsonpatch_errc.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp +- others/jsoncons/test/jsonpatch/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpatch::jsonpatch_errc, jsonpatch_errc + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: mittel +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpatch/jsonpatch_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vorhanden. +- Das Symbol bzw. der Begriff `jsonpatch_errc` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Das Symbol bzw. der Begriff `jsoncons::jsonpatch::jsonpatch_errc` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vor. +- Das Symbol bzw. der Begriff `jsonpatch_errc` kommt in `others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp +- others/jsoncons/test/jsonpatch/src +- Symbole: jsoncons::jsonpatch::jsonpatch_errc, jsonpatch_errc +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpatch/src diff --git a/analysis/jsoncons/ref/jsonpatch/jsonpatch_error.md b/analysis/jsoncons/ref/jsonpatch/jsonpatch_error.md new file mode 100644 index 0000000000..2bc44bc902 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpatch/jsonpatch_error.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/jsonpatch/jsonpatch_error.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/test/jsonpatch/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpatch::jsonpatch_error, jsonpatch_error, Inherited from std::system_error, system_error + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpatch/jsonpatch_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpatch/jsonpatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vorhanden. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp +- others/jsoncons/test/jsonpatch/src +- Symbole: jsoncons::jsonpatch::jsonpatch_error, jsonpatch_error, Inherited from std::system_error, system_error +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpatch/src diff --git a/analysis/jsoncons/ref/jsonpath/basic_json_location.md b/analysis/jsoncons/ref/jsonpath/basic_json_location.md new file mode 100644 index 0000000000..c69ad583ec --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/basic_json_location.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/basic_json_location.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::basic_json_location, basic_json_location, operator=, Iterators + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::basic_json_location, basic_json_location, operator=, Iterators +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/basic_path_element.md b/analysis/jsoncons/ref/jsonpath/basic_path_element.md new file mode 100644 index 0000000000..3a6bb6ba92 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/basic_path_element.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/basic_path_element.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::basic_path_element, basic_path_element, operator=, Accessors + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::basic_path_element, basic_path_element, operator=, Accessors +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/basic_path_node.md b/analysis/jsoncons/ref/jsonpath/basic_path_node.md new file mode 100644 index 0000000000..d70af745f6 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/basic_path_node.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/basic_path_node.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::basic_path_node, basic_path_node, operator=, Accessors + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::basic_path_node, basic_path_node, operator=, Accessors +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/flatten.md b/analysis/jsoncons/ref/jsonpath/flatten.md new file mode 100644 index 0000000000..556743db02 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/flatten.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/flatten.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/test/jsonpath/src/jsonpath_flatten_tests.cpp +- Relevante Klassen/Funktionen/Symbole: jsonpath::flatten, jsonpath::unflatten + +## Kurzfazit +- Status: widersprüchlich +- Vertrauensniveau: mittel +- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. + +## Was durch Code belegt ist +- Die Funktionen `flatten` und `unflatten` sind in [others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp) implementiert. +- Der Beispielcode in der Doku verwendet `#include `, und dieser Header existiert im Repository. +- Der im Kopf der Doku genannte Include-Pfad `jsoncons_ext/jsonpath/filter.hpp` existiert im Repository nicht. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. +- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. +- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die API-Funktionen selbst sind vorhanden und fachlich der jsonpath-Erweiterung zugeordnet. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. +- Widerspruch: Der dokumentierte Include-Pfad im Kopf ist veraltet oder falsch. +- Widerspruch: Der dokumentierte Include-Pfad `jsoncons_ext/jsonpath/filter.hpp` ist im aktuellen Repository nicht vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `flatten`/`unflatten` materialisieren komplette Zwischenstrukturen. Warum potenziell teuer: Der gesamte Baum bzw. das gesamte Pointer-/Path-Objekt wird in einem Schritt aufgebaut. Mögliche Verbesserung: nur prüfenwerte Optimierung durch Einsatz der Pointer-Variante, wenn bereits pointer-normalisierte Schlüssel vorliegen; ein gemessener Engpass ist im Repository nicht belegt. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Den Kopf-Header auf `jsoncons_ext/jsonpath/flatten.hpp` oder auf den im Beispiel bereits verwendeten Aggregate-Header `jsoncons_ext/jsonpath/jsonpath.hpp` umstellen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/test/jsonpath/src/jsonpath_flatten_tests.cpp +- Symbole: jsonpath::flatten, jsonpath::unflatten +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/abs.md b/analysis/jsoncons/ref/jsonpath/functions/abs.md new file mode 100644 index 0000000000..9abc2f1de5 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/abs.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/abs.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: abs + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `abs` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `abs` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Das Symbol bzw. der Begriff `abs` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp` vor. +- Das Symbol bzw. der Begriff `abs` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/issues/draft2019-09/anyof.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/JSON-Schema-Test-Suite/output-tests/README.md`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: abs +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/avg.md b/analysis/jsoncons/ref/jsonpath/functions/avg.md new file mode 100644 index 0000000000..ebfccc1f65 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/avg.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/avg.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/examples/src/jsonpath_examples.cpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: avg + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `avg` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `avg` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/examples/src/jsonpath_examples.cpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: avg +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/ceil.md b/analysis/jsoncons/ref/jsonpath/functions/ceil.md new file mode 100644 index 0000000000..891856514b --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/ceil.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/ceil.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/examples/src/jsonpath_examples.cpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: ceil + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `ceil` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `ceil` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Das Symbol bzw. der Begriff `ceil` kommt in `others/jsoncons/include/jsoncons/detail/grisu3.hpp` vor. +- Das Symbol bzw. der Begriff `ceil` kommt in `others/jsoncons/include/jsoncons/utility/bigint.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/examples/src/jsonpath_examples.cpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: ceil +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/contains.md b/analysis/jsoncons/ref/jsonpath/functions/contains.md new file mode 100644 index 0000000000..b2df0e9841 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/contains.md @@ -0,0 +1,55 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/contains.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: contains + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. +- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: contains +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/ends_with.md b/analysis/jsoncons/ref/jsonpath/functions/ends_with.md new file mode 100644 index 0000000000..9dd5a175f0 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/ends_with.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/ends_with.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: ends_with + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `ends_with` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `ends_with` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Das Symbol bzw. der Begriff `ends_with` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp` vor. +- Das Symbol bzw. der Begriff `ends_with` kommt in `others/jsoncons/include/jsoncons/utility/string_utils.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/utility/string_utils_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: ends_with +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/floor.md b/analysis/jsoncons/ref/jsonpath/functions/floor.md new file mode 100644 index 0000000000..a8eda00954 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/floor.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/floor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/examples/src/jsonpath_examples.cpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: floor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `floor` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `floor` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Das Symbol bzw. der Begriff `floor` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/examples/src/jsonpath_examples.cpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: floor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/keys.md b/analysis/jsoncons/ref/jsonpath/functions/keys.md new file mode 100644 index 0000000000..0be5ae1846 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/keys.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/keys.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: keys + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `keys` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. +- Das Symbol bzw. der Begriff `keys` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `keys` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Das Symbol bzw. der Begriff `keys` kommt in `others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/issues/draft2019-09/anyof.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_flatten_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: keys +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/length.md b/analysis/jsoncons/ref/jsonpath/functions/length.md new file mode 100644 index 0000000000..80cc25f6a4 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/length.md @@ -0,0 +1,53 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/length.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: length + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `length` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `length` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `length` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. +- Das Symbol bzw. der Begriff `length` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: length +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/max.md b/analysis/jsoncons/ref/jsonpath/functions/max.md new file mode 100644 index 0000000000..8525107bf9 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/max.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/max.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: max + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `max` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `max` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `max` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. +- Das Symbol bzw. der Begriff `max` kommt in `others/jsoncons/include/jsoncons/json_error.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: max +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/min.md b/analysis/jsoncons/ref/jsonpath/functions/min.md new file mode 100644 index 0000000000..08c439a06d --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/min.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/min.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: min + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `min` kommt in `others/jsoncons/include/jsoncons/json_parser.hpp` vor. +- Das Symbol bzw. der Begriff `min` kommt in `others/jsoncons/include/jsoncons/source.hpp` vor. +- Das Symbol bzw. der Begriff `min` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. +- Das Symbol bzw. der Begriff `min` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_reader_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: min +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/prod.md b/analysis/jsoncons/ref/jsonpath/functions/prod.md new file mode 100644 index 0000000000..cee33cf556 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/prod.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/prod.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: prod + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `prod` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. +- Das Symbol bzw. der Begriff `prod` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_parser.hpp` vor. +- Das Symbol bzw. der Begriff `prod` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Das Symbol bzw. der Begriff `prod` kommt in `others/jsoncons/include/jsoncons/utility/bigint.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/schema_version_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/JSON-Schema-Test-Suite/output-tests/README.md`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: prod +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/starts_with.md b/analysis/jsoncons/ref/jsonpath/functions/starts_with.md new file mode 100644 index 0000000000..6d61775a34 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/starts_with.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/starts_with.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: starts_with + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `starts_with` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `starts_with` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Das Symbol bzw. der Begriff `starts_with` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp` vor. +- Das Symbol bzw. der Begriff `starts_with` kommt in `others/jsoncons/include/jsoncons/utility/string_utils.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/utility/string_utils_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: starts_with +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/sum.md b/analysis/jsoncons/ref/jsonpath/functions/sum.md new file mode 100644 index 0000000000..eb114d900c --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/sum.md @@ -0,0 +1,55 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/sum.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: sum + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `sum` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. +- Das Symbol bzw. der Begriff `sum` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vor. +- Das Symbol bzw. der Begriff `sum` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp` vor. +- Das Symbol bzw. der Begriff `sum` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: sum +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/to_number.md b/analysis/jsoncons/ref/jsonpath/functions/to_number.md new file mode 100644 index 0000000000..771f93ad43 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/to_number.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/to_number.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: to_number + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `to_number` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `to_number` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Das Symbol bzw. der Begriff `to_number` kommt in `others/jsoncons/include/jsoncons/utility/read_number.hpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/jsonschema_examples.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: to_number +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/tokenize.md b/analysis/jsoncons/ref/jsonpath/functions/tokenize.md new file mode 100644 index 0000000000..ed59880726 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/functions/tokenize.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/functions/tokenize.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/examples/src/jsonpath_examples.cpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: tokenize + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `tokenize` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/toon/src/encode_toon_tests.cpp` vor. +- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp` vor. +- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/examples/src/jsonpath_examples.cpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: tokenize +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/get.md b/analysis/jsoncons/ref/jsonpath/get.md new file mode 100644 index 0000000000..2638dc32f0 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/get.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/get.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::get, get + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. +- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. +- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/decode_toon_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::get, get +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/grammar.md b/analysis/jsoncons/ref/jsonpath/grammar.md new file mode 100644 index 0000000000..9c36c9f817 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/grammar.md @@ -0,0 +1,39 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/grammar.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: grammar + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: niedrig +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist + +## Prüfung der inhaltlichen Korrektheit +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. +- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: grammar +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/json_query.md b/analysis/jsoncons/ref/jsonpath/json_query.md new file mode 100644 index 0000000000..67eb3e4bb1 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/json_query.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/json_query.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_flatten_tests.cpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::json_query, json_query + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/json_query.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `json_query` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. +- Das Symbol bzw. der Begriff `json_query` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vor. +- Das Symbol bzw. der Begriff `Callback` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp` vor. +- Das Symbol bzw. der Begriff `Callback` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die Verarbeitung wiederkehrender Ausdrücke lässt sich robuster und klarer über `make_expression` plus Wiederverwendung derselben Expression strukturieren als über wiederholte ad-hoc-Strings. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_flatten_tests.cpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::json_query, json_query +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/json_replace.md b/analysis/jsoncons/ref/jsonpath/json_replace.md new file mode 100644 index 0000000000..1e0af4796e --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/json_replace.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/json_replace.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/examples/src/jsonpath_examples.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_json_replace_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::json_replace, json_replace + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/json_query.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `json_replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. +- Das Symbol bzw. der Begriff `json_replace` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Das Symbol bzw. der Begriff `jsoncons::jsonpath::json_replace` kommt in `others/jsoncons/test/jsonpath/src/jsonpath_json_replace_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die Verarbeitung wiederkehrender Ausdrücke lässt sich robuster und klarer über `make_expression` plus Wiederverwendung derselben Expression strukturieren als über wiederholte ad-hoc-Strings. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/examples/src/jsonpath_examples.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_json_replace_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::json_replace, json_replace +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsoncons-jsonpath-abnf.md b/analysis/jsoncons/ref/jsonpath/jsoncons-jsonpath-abnf.md new file mode 100644 index 0000000000..d459e1a898 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/jsoncons-jsonpath-abnf.md @@ -0,0 +1,39 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/jsoncons-jsonpath-abnf.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons-jsonpath-abnf + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: niedrig +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist + +## Prüfung der inhaltlichen Korrektheit +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. +- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons-jsonpath-abnf +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath.md b/analysis/jsoncons/ref/jsonpath/jsonpath.md new file mode 100644 index 0000000000..92e1bcd4cc --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/jsonpath.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: Classes, Functions + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `jsonpath` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_error.hpp` vor. +- Das Symbol bzw. der Begriff `jsonpath` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vor. +- Das Symbol bzw. der Begriff `jsonpath` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp` vor. +- Das Symbol bzw. der Begriff `jsonpath` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die Verarbeitung wiederkehrender Ausdrücke lässt sich robuster und klarer über `make_expression` plus Wiederverwendung derselben Expression strukturieren als über wiederholte ad-hoc-Strings. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: Classes, Functions +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_error.md b/analysis/jsoncons/ref/jsonpath/jsonpath_error.md new file mode 100644 index 0000000000..da6e459317 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/jsonpath_error.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_error.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::jsonpath_error, jsonpath_error, Inherited from std::system_error, system_error + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp` vorhanden. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::jsonpath_error, jsonpath_error, Inherited from std::system_error, system_error +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_expression.md b/analysis/jsoncons/ref/jsonpath/jsonpath_expression.md new file mode 100644 index 0000000000..82c0342f0a --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/jsonpath_expression.md @@ -0,0 +1,53 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_expression.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::jsonpath_expression, jsonpath_expression + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `jsonpath_expression` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. +- Das Symbol bzw. der Begriff `jsonpath_expression` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp` vor. +- Das Symbol bzw. der Begriff `Non-member functions` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. +- Das Symbol bzw. der Begriff `jsonpath_expression` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_flatten_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::jsonpath_expression, jsonpath_expression +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_expression/evaluate.md b/analysis/jsoncons/ref/jsonpath/jsonpath_expression/evaluate.md new file mode 100644 index 0000000000..3640a968c1 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/jsonpath_expression/evaluate.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_expression/evaluate.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::jsonpath_expression::evaluate, evaluate + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `evaluate` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `evaluate` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `evaluate` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. +- Das Symbol bzw. der Begriff `evaluate` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::jsonpath_expression::evaluate, evaluate +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_expression/select.md b/analysis/jsoncons/ref/jsonpath/jsonpath_expression/select.md new file mode 100644 index 0000000000..94c3cc9c00 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/jsonpath_expression/select.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_expression/select.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::jsonpath_expression::select, select, Receive locations and values selected from a root value (since 0.172.0) + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp` vor. +- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::jsonpath_expression::select, select, Receive locations and values selected from a root value (since 0.172.0) +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_expression/select_paths.md b/analysis/jsoncons/ref/jsonpath/jsonpath_expression/select_paths.md new file mode 100644 index 0000000000..51114a2f15 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/jsonpath_expression/select_paths.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_expression/select_paths.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::jsonpath_expression::select, select, select_paths + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp` vor. +- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::jsonpath_expression::select, select, select_paths +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_expression/update.md b/analysis/jsoncons/ref/jsonpath/jsonpath_expression/update.md new file mode 100644 index 0000000000..2b7f23e3e9 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/jsonpath_expression/update.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_expression/update.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::jsonpath_expression::update, update + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `update` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `update` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `update` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. +- Das Symbol bzw. der Begriff `update` kommt in `others/jsoncons/include/jsoncons/json_parser.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::jsonpath_expression::update, update +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_grammer.md b/analysis/jsoncons/ref/jsonpath/jsonpath_grammer.md new file mode 100644 index 0000000000..b68acca852 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/jsonpath_grammer.md @@ -0,0 +1,39 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_grammer.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: Grammar, jsonpath_grammer + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: niedrig +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist + +## Prüfung der inhaltlichen Korrektheit +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. +- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: Grammar, jsonpath_grammer +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/make_expression.md b/analysis/jsoncons/ref/jsonpath/make_expression.md new file mode 100644 index 0000000000..063a209817 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/make_expression.md @@ -0,0 +1,61 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/make_expression.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_select_paths_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::make_expression, make_expression + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `make_expression` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `make_expression` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. +- Das Symbol bzw. der Begriff `make_expression` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die Verarbeitung wiederkehrender Ausdrücke lässt sich robuster und klarer über `make_expression` plus Wiederverwendung derselben Expression strukturieren als über wiederholte ad-hoc-Strings. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_select_paths_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::make_expression, make_expression +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/path_node_kind.md b/analysis/jsoncons/ref/jsonpath/path_node_kind.md new file mode 100644 index 0000000000..1e28a7269b --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/path_node_kind.md @@ -0,0 +1,43 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/path_node_kind.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/path_node.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::path_node_kind, path_node_kind + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: mittel +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `path_node_kind` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. +- Das Symbol bzw. der Begriff `path_node_kind` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/path_node.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/path_node.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::path_node_kind, path_node_kind +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/remove.md b/analysis/jsoncons/ref/jsonpath/remove.md new file mode 100644 index 0000000000..74dc9b7e6b --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/remove.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/remove.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::remove, remove + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vor. +- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. +- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::remove, remove +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/replace.md b/analysis/jsoncons/ref/jsonpath/replace.md new file mode 100644 index 0000000000..e82e10edb1 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/replace.md @@ -0,0 +1,53 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/replace.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::replace, replace + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vor. +- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. +- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::replace, replace +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/result_options.md b/analysis/jsoncons/ref/jsonpath/result_options.md new file mode 100644 index 0000000000..deee26ad2a --- /dev/null +++ b/analysis/jsoncons/ref/jsonpath/result_options.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/jsonpath/result_options.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_json_query_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_test_suite.cpp +- others/jsoncons/test/jsonpath/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::result_options, result_options + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `result_options` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. +- Das Symbol bzw. der Begriff `result_options` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp` vor. +- Das Symbol bzw. der Begriff `result_options` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp` vor. +- Das Symbol bzw. der Begriff `result_options` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_json_query_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp +- others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_json_query_tests.cpp +- others/jsoncons/test/jsonpath/src/jsonpath_test_suite.cpp +- others/jsoncons/test/jsonpath/src +- Symbole: jsoncons::jsonpath::result_options, result_options +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpointer/add.md b/analysis/jsoncons/ref/jsonpointer/add.md new file mode 100644 index 0000000000..19f5c1a6a8 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpointer/add.md @@ -0,0 +1,50 @@ +# Analyse: others/jsoncons/doc/ref/jsonpointer/add.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/jsonpointer/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::add, add + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `add` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `add` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. +- Das Symbol bzw. der Begriff `add` kommt in `others/jsoncons/include/jsoncons/json_filter.hpp` vor. +- Das Symbol bzw. der Begriff `add` kommt in `others/jsoncons/include/jsoncons/sink.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. +- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/jsonpointer/src +- Symbole: jsoncons::jsonpointer::add, add +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/add_if_absent.md b/analysis/jsoncons/ref/jsonpointer/add_if_absent.md new file mode 100644 index 0000000000..74aef191f3 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpointer/add_if_absent.md @@ -0,0 +1,54 @@ +# Analyse: others/jsoncons/doc/ref/jsonpointer/add_if_absent.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/src/jsonpointer_examples.cpp +- others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp +- others/jsoncons/test/jsonpointer/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::add_if_absent, add_if_absent + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `add_if_absent` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Das Symbol bzw. der Begriff `add_if_absent` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Das Symbol bzw. der Begriff `add_if_absent` kommt in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. +- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/examples/src/jsonpointer_examples.cpp +- others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp +- others/jsoncons/test/jsonpointer/src +- Symbole: jsoncons::jsonpointer::add_if_absent, add_if_absent +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/basic_json_pointer.md b/analysis/jsoncons/ref/jsonpointer/basic_json_pointer.md new file mode 100644 index 0000000000..19bd7b240f --- /dev/null +++ b/analysis/jsoncons/ref/jsonpointer/basic_json_pointer.md @@ -0,0 +1,50 @@ +# Analyse: others/jsoncons/doc/ref/jsonpointer/basic_json_pointer.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/jsonpointer/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::basic_json_pointer, basic_json_pointer, operator=, Modifiers + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. +- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/jsonpointer/src +- Symbole: jsoncons::jsonpointer::basic_json_pointer, basic_json_pointer, operator=, Modifiers +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/contains.md b/analysis/jsoncons/ref/jsonpointer/contains.md new file mode 100644 index 0000000000..fea11866ff --- /dev/null +++ b/analysis/jsoncons/ref/jsonpointer/contains.md @@ -0,0 +1,50 @@ +# Analyse: others/jsoncons/doc/ref/jsonpointer/contains.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/jsonpointer/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::contains, contains + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. +- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. +- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/jsonpointer/src +- Symbole: jsoncons::jsonpointer::contains, contains +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/flatten.md b/analysis/jsoncons/ref/jsonpointer/flatten.md new file mode 100644 index 0000000000..dc5cd069d4 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpointer/flatten.md @@ -0,0 +1,54 @@ +# Analyse: others/jsoncons/doc/ref/jsonpointer/flatten.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp +- others/jsoncons/test/jsonpointer/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::flatten, flatten + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. +- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. +- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. +- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. +- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp +- others/jsoncons/test/jsonpointer/src +- Symbole: jsoncons::jsonpointer::flatten, flatten +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/get.md b/analysis/jsoncons/ref/jsonpointer/get.md new file mode 100644 index 0000000000..673a162885 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpointer/get.md @@ -0,0 +1,50 @@ +# Analyse: others/jsoncons/doc/ref/jsonpointer/get.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/jsonpointer/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::get, get + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. +- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. +- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. +- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/jsonpointer/src +- Symbole: jsoncons::jsonpointer::get, get +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/jsonpointer.md b/analysis/jsoncons/ref/jsonpointer/jsonpointer.md new file mode 100644 index 0000000000..07a22bd642 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpointer/jsonpointer.md @@ -0,0 +1,50 @@ +# Analyse: others/jsoncons/doc/ref/jsonpointer/jsonpointer.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/test/jsonpointer/src +- Relevante Klassen/Funktionen/Symbole: Classes, Functions, Using jsonpointer::json_pointer with jsonpointer::get + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. +- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. +- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. +- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. +- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/test/jsonpointer/src +- Symbole: Classes, Functions, Using jsonpointer::json_pointer with jsonpointer::get +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/jsonpointer_errc.md b/analysis/jsoncons/ref/jsonpointer/jsonpointer_errc.md new file mode 100644 index 0000000000..7226c2d7d0 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpointer/jsonpointer_errc.md @@ -0,0 +1,45 @@ +# Analyse: others/jsoncons/doc/ref/jsonpointer/jsonpointer_errc.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/test/jsonpointer/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::jsonpointer_errc, jsonpointer_errc + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: mittel +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp` vorhanden. +- Das Symbol bzw. der Begriff `jsonpointer_errc` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. +- Das Symbol bzw. der Begriff `jsoncons::jsonpointer::jsonpointer_errc` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/test/jsonpointer/src +- Symbole: jsoncons::jsonpointer::jsonpointer_errc, jsonpointer_errc +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/jsonpointer_error.md b/analysis/jsoncons/ref/jsonpointer/jsonpointer_error.md new file mode 100644 index 0000000000..99edde7a64 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpointer/jsonpointer_error.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/jsonpointer/jsonpointer_error.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/test/jsonpointer/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::jsonpointer_error, jsonpointer_error, Inherited from std::system_error, system_error + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. +- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/test/jsonpointer/src +- Symbole: jsoncons::jsonpointer::jsonpointer_error, jsonpointer_error, Inherited from std::system_error, system_error +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/remove.md b/analysis/jsoncons/ref/jsonpointer/remove.md new file mode 100644 index 0000000000..388c8c4a44 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpointer/remove.md @@ -0,0 +1,52 @@ +# Analyse: others/jsoncons/doc/ref/jsonpointer/remove.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp +- others/jsoncons/test/jsonpointer/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::remove, remove + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vor. +- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. +- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. +- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp +- others/jsoncons/test/jsonpointer/src +- Symbole: jsoncons::jsonpointer::remove, remove +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/replace.md b/analysis/jsoncons/ref/jsonpointer/replace.md new file mode 100644 index 0000000000..58890de528 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpointer/replace.md @@ -0,0 +1,50 @@ +# Analyse: others/jsoncons/doc/ref/jsonpointer/replace.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/jsonpointer/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::replace, replace + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vor. +- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. +- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. +- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/jsonpointer/src +- Symbole: jsoncons::jsonpointer::replace, replace +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/unflatten_options.md b/analysis/jsoncons/ref/jsonpointer/unflatten_options.md new file mode 100644 index 0000000000..4853294a29 --- /dev/null +++ b/analysis/jsoncons/ref/jsonpointer/unflatten_options.md @@ -0,0 +1,53 @@ +# Analyse: others/jsoncons/doc/ref/jsonpointer/unflatten_options.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp +- Relevante Klassen/Funktionen/Symbole: unflatten_options, basic_json_pointer + +## Kurzfazit +- Status: widersprüchlich +- Vertrauensniveau: hoch +- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. + +## Was durch Code belegt ist +- Die Doku verwendet `#include `, eine solche Datei existiert im Repository nicht. +- Das Enum `unflatten_options` ist in [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) definiert. +- Der Code definiert `enum class unflatten_options {none,assume_object = 1};` in `jsonpointer.hpp`. +- Das Symbol bzw. der Begriff `unflatten_options` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. +- Das Symbol bzw. der Begriff `unflatten_options` kommt in `others/jsoncons/test/jsonpointer/src/jsonpointer_flatten_tests.cpp` vor. +- Das Symbol bzw. der Begriff `unflatten_options` kommt in `others/jsoncons/examples/src/jsonpointer_examples.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_flatten_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die Option gehört fachlich zum Unflatten-Pfad in `jsonpointer.hpp`; die Zuordnung der Doku zur Implementierung ist eindeutig. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. +- Widerspruch: Der dokumentierte Include-Pfad ist falsch; korrekt ist `jsoncons_ext/jsonpointer/jsonpointer.hpp`. +- Widerspruch: Die Doku nennt den Enumerator `object=1`, der Code verwendet `assume_object = 1`. +- Widerspruch: Die Wertetabelle nennt `assume_object`; das passt zur Implementierung, aber nicht zum gezeigten Codeblock. +- Widerspruch: Der dokumentierte Include-Pfad `jsoncons/jsonpointer/jsonpointer.hpp` ist im aktuellen Repository nicht vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren Implementierungsprobleme am Enum selbst; die Inkonsistenz liegt in der Dokumentation. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: String-basierte JSON-Pointer-Operationen in [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) parsen Pfade wiederholt, während Überladungen mit `basic_json_pointer` ebenfalls existieren. Warum potenziell teuer: Wiederholtes Parsen desselben Pfads erzeugt vermeidbare Tokenisierung. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorgeparsten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die Seite sollte den Zusammenhang zu `jsoncons::jsonpointer::unflatten(const Json&, unflatten_options)` explizit mit dem korrekten Enum-Namen darstellen. + +## Unklarheiten / nicht belegbare Punkte +- Die jsonpointer-Tests wurden nicht ausgeführt; die Aussage stützt sich auf Header-Inspektion. +- Die vorhandenen Tests/Benchmarks wurden für diese Analyse nicht ausgeführt; die Einschätzung ist statisch. + +## Vorschläge zur Dokumentationsanpassung +- Include auf `#include ` korrigieren. +- Im Codeblock `assume_object = 1` statt `object=1` dokumentieren. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp +- Symbole: unflatten_options, basic_json_pointer +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonschema/custom-error-messages.md b/analysis/jsoncons/ref/jsonschema/custom-error-messages.md new file mode 100644 index 0000000000..33e40b9674 --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/custom-error-messages.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/custom-error-messages.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/examples/src/jsonschema_examples.cpp +- others/jsoncons/test/jsonschema/src +- Relevante Klassen/Funktionen/Symbole: Custom Error Messages (since 1.2.0), custom-error-messages + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/toon/src/encode_toon_tests.cpp` vor. +- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp` vor. +- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/corelib/src/reflect/reflect_traits_gen_functional_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/examples/src/jsonschema_examples.cpp +- others/jsoncons/test/jsonschema/src +- Symbole: Custom Error Messages (since 1.2.0), custom-error-messages +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/evaluation_options.md b/analysis/jsoncons/ref/jsonschema/evaluation_options.md new file mode 100644 index 0000000000..d138715d6f --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/evaluation_options.md @@ -0,0 +1,49 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/evaluation_options.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp +- others/jsoncons/test/jsonschema/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::evaluation_options, evaluation_options + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/abort_early_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/custom_message_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Validierungspfade in [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) bauen auch dann ein Patch-Objekt auf, wenn der Aufrufer nur Validität oder Fehlermeldungen benötigt. Warum potenziell teuer: Das erzeugt zusätzlichen Objektaufbau und potenziell Patch-Inhalte, obwohl kein Rückgabepfad für den Patch genutzt wird. Mögliche Verbesserung: prüfenswerte Trennung in einen no-patch-Validierungspfad oder lazy Patch-Materialisierung. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp +- others/jsoncons/test/jsonschema/src +- Symbole: jsoncons::jsonschema::evaluation_options, evaluation_options +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/json_schema.md b/analysis/jsoncons/ref/jsonschema/json_schema.md new file mode 100644 index 0000000000..72784a7a4f --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/json_schema.md @@ -0,0 +1,61 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/json_schema.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator_factory.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/draft201909/schema_validator_factory_201909.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp +- others/jsoncons/test/jsonschema/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::json_schema, json_schema + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. +- Das Symbol bzw. der Begriff `json_schema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp` vor. +- Das Symbol bzw. der Begriff `json_schema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp` vor. +- Das Symbol bzw. der Begriff `json_schema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vor. +- Das Symbol bzw. der Begriff `json_schema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/abort_early_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/custom_message_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Validierungspfade in [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) bauen auch dann ein Patch-Objekt auf, wenn der Aufrufer nur Validität oder Fehlermeldungen benötigt. Warum potenziell teuer: Das erzeugt zusätzlichen Objektaufbau und potenziell Patch-Inhalte, obwohl kein Rückgabepfad für den Patch genutzt wird. Mögliche Verbesserung: prüfenswerte Trennung in einen no-patch-Validierungspfad oder lazy Patch-Materialisierung. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die aktuelle Struktur trennt Kompilierung (`make_json_schema`) und Auswertung (`json_schema`); Dokumentation und Nutzung sollten diese Trennung explizit beibehalten, um unnötige Rekompilierungen zu vermeiden. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator_factory.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/draft201909/schema_validator_factory_201909.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp +- others/jsoncons/test/jsonschema/src +- Symbole: jsoncons::jsonschema::json_schema, json_schema +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/json_schema/is_valid.md b/analysis/jsoncons/ref/jsonschema/json_schema/is_valid.md new file mode 100644 index 0000000000..c7179ab43c --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/json_schema/is_valid.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/json_schema/is_valid.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/test/jsonschema/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::json_schema::is_valid, is_valid + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. +- Das Symbol bzw. der Begriff `is_valid` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `is_valid` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. +- Das Symbol bzw. der Begriff `is_valid` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. +- Das Symbol bzw. der Begriff `is_valid` kommt in `others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Validierungspfade in [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) bauen auch dann ein Patch-Objekt auf, wenn der Aufrufer nur Validität oder Fehlermeldungen benötigt. Warum potenziell teuer: Das erzeugt zusätzlichen Objektaufbau und potenziell Patch-Inhalte, obwohl kein Rückgabepfad für den Patch genutzt wird. Mögliche Verbesserung: prüfenswerte Trennung in einen no-patch-Validierungspfad oder lazy Patch-Materialisierung. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/test/jsonschema/src +- Symbole: jsoncons::jsonschema::json_schema::is_valid, is_valid +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/json_schema/validate.md b/analysis/jsoncons/ref/jsonschema/json_schema/validate.md new file mode 100644 index 0000000000..7c89f936f2 --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/json_schema/validate.md @@ -0,0 +1,64 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/json_schema/validate.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/test/jsonschema/src/jsonschema_draft202012_tests.cpp +- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp +- Relevante Klassen/Funktionen/Symbole: json_schema::validate, validation_message, walk_result + +## Kurzfazit +- Status: widersprüchlich +- Vertrauensniveau: hoch +- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. + +## Was durch Code belegt ist +- In [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) ist die Signatur `Json validate(const Json& instance) const` direkt implementiert. +- Im selben Header existieren die Overloads `void validate(const Json& instance, Json& patch) const`, reporter-basierte Overloads und `void validate(const Json& instance, json_visitor& visitor) const`. +- Der Doku-Beispielcode enthält in [others/jsoncons/doc/ref/jsonschema/json_schema/validate.md](others/jsoncons/doc/ref/jsonschema/json_schema/validate.md) ein `int main()` ohne folgende `{` und verwendet im Reporter-Lambda den Bezeichner `message`, obwohl der Parameter `msg` heißt. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. +- Das Symbol bzw. der Begriff `validate` kommt in `others/jsoncons/include/jsoncons/json_parser.hpp` vor. +- Das Symbol bzw. der Begriff `validate` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp` vor. +- Das Symbol bzw. der Begriff `validate` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_parser.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die Validierungsfunktionalität ist im Repository vorhanden und durch umfangreiche Tests unter [others/jsoncons/test/jsonschema/src](others/jsoncons/test/jsonschema/src) indirekt abgestützt. +- Bestätigt: Die reporter-basierte API arbeitet im Code mit `validation_message` und `walk_result`; das ist in `json_schema.hpp` direkt nachvollziehbar. +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. +- Widerspruch: Die Doku nennt für Overload (1) `void validate(const Json& instance) const`, der Header implementiert aber `Json validate(const Json& instance) const` und gibt den Patch zurück. +- Widerspruch: Die Doku behauptet unter „Return value“ pauschal `None`; das widerspricht dem tatsächlichen Rückgabewert von Overload (1). +- Widerspruch: Die Doku-Signatur `json_visitor& visitor` entspricht nicht dem Header, der `json_visitor& visitor` verwendet. +- Widerspruch: Das Beispiel ist als C++-Code in der gezeigten Form nicht kompilierbar. + +## Mögliche Probleme in der Implementierung +- In `json_schema.hpp` wird für `validate(const Json& instance)`, `validate(const Json& instance, const MsgReporter&)` und `is_valid(const Json& instance)` jeweils ein Patch-Array aufgebaut (`Json patch(json_array_arg)`), obwohl der Aufrufer den Patch nicht in jedem Fall benötigt. Das ist ein konkreter, aber nicht gemessener möglicher Zusatzaufwand. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `json_schema::validate(const Json& instance)`, `validate(..., reporter)` und `is_valid()` legen in [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) jeweils ein `Json patch(json_array_arg)` an. Warum potenziell teuer: Das erzeugt zusätzlichen Objekt- und ggf. Patch-Aufbau selbst dann, wenn nur ein Bool-Ergebnis oder ein Fehler-Callback benötigt wird. Mögliche Verbesserung: prüfenswerte Aufspaltung in einen Pfad ohne Patch-Materialisierung oder lazy Patch-Erzeugung. Sicherheitsgrad der Aussage: mittel. +- Beobachtung: Die eigentliche Validierung delegiert an `root_->validate(...)` und traversiert dafür das gesamte Schema-/Instanzmodell. Warum potenziell teuer: Bei wiederholter Validierung großer Instanzen ist die Laufzeit naturgemäß vom Traversal dominiert. Mögliche Verbesserung: Nutzung der bereits vorhandenen kompilierten `json_schema`-Instanz wiederverwenden und keine Rekompilierung der Schemas vornehmen. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die Beispiele und die Overload-Tabelle sollten konsistent zwischen Throwing-, Reporter-, Patch- und Visitor-Pfaden unterscheiden, weil der aktuelle Header diese Pfade klar trennt. +- Für reine Gültigkeitsprüfungen ist `is_valid()` der klarere Verarbeitungspfad als `validate()` mit anschließend ignoriertem Rückgabewert. + +## Unklarheiten / nicht belegbare Punkte +- Die vorhandenen jsonschema-Tests wurden für diese Analyse nicht ausgeführt; die Einschätzung stützt sich auf statische Code- und Testinspektion. +- Es ist nicht sicher belegbar, ob der zusätzliche Patch-Aufbau in realen Workloads messbar ins Gewicht fällt, weil im Repository dazu keine isolierten Benchmarks liegen. +- Die vorhandenen Tests/Benchmarks wurden für diese Analyse nicht ausgeführt; die Einschätzung ist statisch. + +## Vorschläge zur Dokumentationsanpassung +- Overload (1) auf `Json validate(const Json& instance) const;` korrigieren. +- Die Visitor-Signatur auf `void validate(const Json& instance, json_visitor& visitor) const;` anpassen. +- Im Abschnitt „Return value“ den Patch-Rückgabewert von Overload (1) dokumentieren. +- Im Beispiel nach `int main()` die öffnende Klammer ergänzen und im Reporter-Lambda `msg` statt `message` verwenden. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/test/jsonschema/src/jsonschema_draft202012_tests.cpp +- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp +- Symbole: json_schema::validate, validation_message, walk_result +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/json_schema/walk.md b/analysis/jsoncons/ref/jsonschema/json_schema/walk.md new file mode 100644 index 0000000000..d3072d016b --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/json_schema/walk.md @@ -0,0 +1,61 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/json_schema/walk.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp +- others/jsoncons/test/jsonschema/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::json_schema::walk, walk + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. +- Das Symbol bzw. der Begriff `walk` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp` vor. +- Das Symbol bzw. der Begriff `walk` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp` vor. +- Das Symbol bzw. der Begriff `walk` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp` vor. +- Das Symbol bzw. der Begriff `walk` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp +- others/jsoncons/test/jsonschema/src +- Symbole: jsoncons::jsonschema::json_schema::walk, walk +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/json_validator.md b/analysis/jsoncons/ref/jsonschema/json_validator.md new file mode 100644 index 0000000000..9b7f41a310 --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/json_validator.md @@ -0,0 +1,53 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/json_validator.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- Relevante Klassen/Funktionen/Symbole: json_validator, json_schema, validation_message + +## Kurzfazit +- Status: wahrscheinlich veraltet +- Vertrauensniveau: hoch +- Begründung: Für den dokumentierten Typ bzw. die dokumentierte API gibt es im aktuellen Repository keinen belastbaren aktiven Implementierungsnachweis oder nur noch Reste wie Vorwärtsdeklarationen. Parallel existiert eine andere, aktuelle API im selben Bereich. Die Doku wirkt deshalb wahrscheinlich veraltet. + +## Was durch Code belegt ist +- Im aktuellen Header [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) ist `json_validator` nur noch vorwärtsdeklariert. +- Eine Klassendefinition für `json_validator` ist im aktuellen Repository nicht nachweisbar. +- Die aktuelle API nutzt `json_schema`, `validation_message` und `make_json_schema`. +- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die Seite ist als „deprecated“ gekennzeichnet; das passt zur fehlenden aktuellen Implementierung nur teilweise. +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. +- Widerspruch: Die dokumentierte Klasse ist im aktuellen Repository nicht in der beschriebenen Form implementiert. +- Widerspruch: Die Reporter-Signatur verweist auf `validation_output`, ein im aktuellen Code nicht vorhandenes Symbol. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Die Seite als historische/entfernte API kennzeichnen oder aus der aktiven Referenz entfernen. +- Einen Migrationshinweis auf `json_schema` und `validation_message` ergänzen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- Symbole: json_validator, json_schema, validation_message +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/jsonschema.md b/analysis/jsoncons/ref/jsonschema/jsonschema.md new file mode 100644 index 0000000000..32e8b0147d --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/jsonschema.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/jsonschema.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp +- others/jsoncons/test/jsonschema/src/jsonschema_draft202012_tests.cpp +- Relevante Klassen/Funktionen/Symbole: Classes, Functions, Compliance, Keywords, Format + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: hoch +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Die jsonschema-Implementierung ist breit im Repository vorhanden, u. a. in [others/jsoncons/include/jsoncons_ext/jsonschema](others/jsoncons/include/jsoncons_ext/jsonschema) und den Tests unter [others/jsoncons/test/jsonschema/src](others/jsoncons/test/jsonschema/src). +- Die Doku verweist weiterhin auf `json_validator.md` als deprecated API. +- Im Beispielblock ab Zeile 208 der Doku folgt auf `int main()` nicht unmittelbar eine `{`, sodass der gezeigte Beispielcode nicht kompiliert. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. +- Das Symbol bzw. der Begriff `jsonschema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp` vor. +- Das Symbol bzw. der Begriff `jsonschema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp` vor. +- Das Symbol bzw. der Begriff `jsonschema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die Aussagen zur Unterstützung mehrerer Draft-Versionen sind durch die vorhandenen Factory-/Draft-Header und die Draft-spezifischen Tests indirekt abgestützt. +- Bestätigt: Die Referenz auf `make_json_schema`, `json_schema`, `evaluation_options`, `validation_message` und `schema_version` passt grundsätzlich zum aktuellen Code. +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. +- Nicht sicher bestätigt: Die Compliance-Tabelle verweist auf externe JSON-Schema-Suite/Bowtie-Aussagen; ohne Testausführung im lokalen Turn ist das nur indirekt durch den vorhandenen Testbestand gestützt. +- Widerspruch: Mindestens ein gezeigtes C++-Beispiel ist in der Doku syntaktisch unvollständig. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Validierungspfade in [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) bauen auch dann ein Patch-Objekt auf, wenn der Aufrufer nur Validität oder Fehlermeldungen benötigt. Warum potenziell teuer: Das erzeugt zusätzlichen Objektaufbau und potenziell Patch-Inhalte, obwohl kein Rückgabepfad für den Patch genutzt wird. Mögliche Verbesserung: prüfenswerte Trennung in einen no-patch-Validierungspfad oder lazy Patch-Materialisierung. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die aktuelle Struktur trennt Kompilierung (`make_json_schema`) und Auswertung (`json_schema`); Dokumentation und Nutzung sollten diese Trennung explizit beibehalten, um unnötige Rekompilierungen zu vermeiden. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Das fehlerhafte `int main()`-Beispiel korrigieren. +- Die deprecated-Referenz auf `json_validator` mit einem klaren Hinweis auf fehlende aktuelle Implementierung/Migration versehen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp +- others/jsoncons/test/jsonschema/src/jsonschema_draft202012_tests.cpp +- Symbole: Classes, Functions, Compliance, Keywords, Format +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/make_json_schema.md b/analysis/jsoncons/ref/jsonschema/make_json_schema.md new file mode 100644 index 0000000000..094e3d9869 --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/make_json_schema.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/make_json_schema.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp +- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp +- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp +- others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp +- others/jsoncons/test/jsonschema/src/json_schema_walk_tests.cpp +- others/jsoncons/test/jsonschema/src/jsonschema_defaults_tests.cpp +- others/jsoncons/test/jsonschema/src/jsonschema_draft201909_tests.cpp +- others/jsoncons/test/jsonschema/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::make_json_schema, make_json_schema + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `make_json_schema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Das Symbol bzw. der Begriff `make_json_schema` kommt in `others/jsoncons/test/jsonschema/src/abort_early_tests.cpp` vor. +- Das Symbol bzw. der Begriff `make_json_schema` kommt in `others/jsoncons/test/jsonschema/src/custom_message_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Validierungspfade in [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) bauen auch dann ein Patch-Objekt auf, wenn der Aufrufer nur Validität oder Fehlermeldungen benötigt. Warum potenziell teuer: Das erzeugt zusätzlichen Objektaufbau und potenziell Patch-Inhalte, obwohl kein Rückgabepfad für den Patch genutzt wird. Mögliche Verbesserung: prüfenswerte Trennung in einen no-patch-Validierungspfad oder lazy Patch-Materialisierung. Sicherheitsgrad der Aussage: mittel. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die aktuelle Struktur trennt Kompilierung (`make_json_schema`) und Auswertung (`json_schema`); Dokumentation und Nutzung sollten diese Trennung explizit beibehalten, um unnötige Rekompilierungen zu vermeiden. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp +- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp +- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp +- others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp +- others/jsoncons/test/jsonschema/src/json_schema_walk_tests.cpp +- others/jsoncons/test/jsonschema/src/jsonschema_defaults_tests.cpp +- others/jsoncons/test/jsonschema/src/jsonschema_draft201909_tests.cpp +- others/jsoncons/test/jsonschema/src +- Symbole: jsoncons::jsonschema::make_json_schema, make_json_schema +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/schema_error.md b/analysis/jsoncons/ref/jsonschema/schema_error.md new file mode 100644 index 0000000000..1fba30491b --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/schema_error.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/schema_error.md + +## Zugehörige Implementierung +- others/jsoncons/test/jsonschema/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::schema_error, schema_error + +## Kurzfazit +- Status: widersprüchlich +- Vertrauensniveau: hoch +- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. + +## Was durch Code belegt ist +- Die Datei [others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp) enthält die Klasse `schema_error`. +- Der in der Doku genannte Pfad `jsoncons_ext/jsonschema/schema_error.hpp` existiert im Repository nicht. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/jsonschema_defaults_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die Exception-Klasse selbst ist im aktuellen Code vorhanden und wird in mehreren jsonschema-Headern verwendet. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. +- Widerspruch: Der dokumentierte Include-Pfad ist falsch; die Implementierung liegt in `jsonschema_error.hpp`. +- Widerspruch: Der dokumentierte Include-Pfad `jsoncons_ext/jsonschema/schema_error.hpp` ist im aktuellen Repository nicht vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Include auf `#include ` korrigieren. + +## Quellen im Repository +- others/jsoncons/test/jsonschema/src +- Symbole: jsoncons::jsonschema::schema_error, schema_error +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/schema_version.md b/analysis/jsoncons/ref/jsonschema/schema_version.md new file mode 100644 index 0000000000..8680ac7354 --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/schema_version.md @@ -0,0 +1,62 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/schema_version.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonschema/draft201909/schema_validator_factory_201909.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/draft202012/schema_validator_factory_202012.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/draft4/schema_validator_factory_4.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/draft6/schema_validator_factory_6.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/draft7/schema_validator_factory_7.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp +- others/jsoncons/test/jsonschema/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::schema_version, schema_version + +## Kurzfazit +- Status: widersprüchlich +- Vertrauensniveau: hoch +- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. + +## Was durch Code belegt ist +- `schema_version` ist in [others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp) definiert. +- Die Aggregate-Datei [others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp) existiert und zieht die Factory-Kette ein. +- Der dokumentierte Include-Pfad `jsoncons/jsonschema/jsonschema.hpp` existiert im Repository nicht. +- Das Symbol bzw. der Begriff `schema_version` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp` vor. +- Das Symbol bzw. der Begriff `schema_version` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp` vor. +- Das Symbol bzw. der Begriff `schema_version` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/draft201909/schema_validator_factory_201909.hpp` vor. +- Das Symbol bzw. der Begriff `schema_version` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/draft202012/schema_validator_factory_202012.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die statischen Helfer `draft4`, `draft6`, `draft7`, `draft201909` und `draft202012` werden im Code und in Tests referenziert. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. +- Widerspruch: Der dokumentierte Include-Pfad ist falsch. +- Widerspruch: Der dokumentierte Include-Pfad `jsoncons/jsonschema/jsonschema.hpp` ist im aktuellen Repository nicht vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Entweder den direkten Definitions-Header `jsoncons_ext/jsonschema/evaluation_options.hpp` oder den öffentlichen Aggregate-Header `jsoncons_ext/jsonschema/jsonschema.hpp` dokumentieren. +- Den Pfad `jsoncons/jsonschema/jsonschema.hpp` entfernen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonschema/draft201909/schema_validator_factory_201909.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/draft202012/schema_validator_factory_202012.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/draft4/schema_validator_factory_4.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/draft6/schema_validator_factory_6.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/draft7/schema_validator_factory_7.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp +- others/jsoncons/test/jsonschema/src +- Symbole: jsoncons::jsonschema::schema_version, schema_version +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/validation_error.md b/analysis/jsoncons/ref/jsonschema/validation_error.md new file mode 100644 index 0000000000..88d3734252 --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/validation_error.md @@ -0,0 +1,46 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/validation_error.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp +- others/jsoncons/test/jsonschema/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::validation_error, validation_error + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/jsonschema_defaults_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/jsonschema_examples.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp +- others/jsoncons/test/jsonschema/src +- Symbole: jsoncons::jsonschema::validation_error, validation_error +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/validation_message.md b/analysis/jsoncons/ref/jsonschema/validation_message.md new file mode 100644 index 0000000000..e70ff6b802 --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/validation_message.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/validation_message.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp +- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp +- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp +- others/jsoncons/test/jsonschema/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::validation_message, validation_message + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp` vorhanden. +- Das Symbol bzw. der Begriff `validation_message` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp` vor. +- Das Symbol bzw. der Begriff `validation_message` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp` vor. +- Das Symbol bzw. der Begriff `validation_message` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp` vor. +- Das Symbol bzw. der Begriff `validation_message` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/abort_early_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/custom_message_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp +- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp +- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp +- others/jsoncons/test/jsonschema/src +- Symbole: jsoncons::jsonschema::validation_message, validation_message +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/validation_output.md b/analysis/jsoncons/ref/jsonschema/validation_output.md new file mode 100644 index 0000000000..dfda9bbff8 --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/validation_output.md @@ -0,0 +1,46 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/validation_output.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- Relevante Klassen/Funktionen/Symbole: validation_output, validation_message + +## Kurzfazit +- Status: wahrscheinlich veraltet +- Vertrauensniveau: hoch +- Begründung: Für den dokumentierten Typ bzw. die dokumentierte API gibt es im aktuellen Repository keinen belastbaren aktiven Implementierungsnachweis oder nur noch Reste wie Vorwärtsdeklarationen. Parallel existiert eine andere, aktuelle API im selben Bereich. Die Doku wirkt deshalb wahrscheinlich veraltet. + +## Was durch Code belegt ist +- Im aktuellen jsonschema-Quellbaum unter [others/jsoncons/include/jsoncons_ext/jsonschema](others/jsoncons/include/jsoncons_ext/jsonschema) kommt das Symbol `validation_output` nicht vor. +- Die aktuelle API verwendet `validation_message`, definiert in [others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp). +- Auch [others/jsoncons/doc/ref/jsonschema/json_validator.md](others/jsoncons/doc/ref/jsonschema/json_validator.md) verweist noch auf `validation_output`. +- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp` vorhanden. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die aktuelle Fehlerberichterstattung des Repositories läuft über `validation_message` und `walk_result`. +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. +- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. +- Widerspruch: Der dokumentierte Typ `validation_output` ist im aktuellen Repository nicht nachweisbar. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. + +## Vorschläge zur Dokumentationsanpassung +- Die Seite entfernen oder als Archiv kennzeichnen. +- Falls ein Nachfolger dokumentiert werden soll, auf `validation_message` umstellen und die aktuellen Header verlinken. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- Symbole: validation_output, validation_message +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/walk_result.md b/analysis/jsoncons/ref/jsonschema/walk_result.md new file mode 100644 index 0000000000..0c786bd53c --- /dev/null +++ b/analysis/jsoncons/ref/jsonschema/walk_result.md @@ -0,0 +1,59 @@ +# Analyse: others/jsoncons/doc/ref/jsonschema/walk_result.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp +- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp +- others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp +- others/jsoncons/test/jsonschema/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::walk_result, walk_result + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `walk_result` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp` vor. +- Das Symbol bzw. der Begriff `walk_result` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp` vor. +- Das Symbol bzw. der Begriff `walk_result` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp` vor. +- Das Symbol bzw. der Begriff `walk_result` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/abort_early_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/custom_message_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp +- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp +- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp +- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp +- others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp +- others/jsoncons/test/jsonschema/src +- Symbole: jsoncons::jsonschema::walk_result, walk_result +- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/mergepatch/apply_merge_patch.md b/analysis/jsoncons/ref/mergepatch/apply_merge_patch.md new file mode 100644 index 0000000000..ecc34e539f --- /dev/null +++ b/analysis/jsoncons/ref/mergepatch/apply_merge_patch.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/mergepatch/apply_merge_patch.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp +- others/jsoncons/test/mergepatch/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::mergepatch::apply_merge_patch, apply_merge_patch + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/mergepatch/mergepatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `apply_merge_patch` kommt in `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Das Symbol bzw. der Begriff `apply_merge_patch` kommt in `others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp +- others/jsoncons/test/mergepatch/src +- Symbole: jsoncons::mergepatch::apply_merge_patch, apply_merge_patch +- Tests / Beispiele / Benchmarks: others/jsoncons/test/mergepatch/src diff --git a/analysis/jsoncons/ref/mergepatch/from_diff.md b/analysis/jsoncons/ref/mergepatch/from_diff.md new file mode 100644 index 0000000000..5b0e86cbc2 --- /dev/null +++ b/analysis/jsoncons/ref/mergepatch/from_diff.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/mergepatch/from_diff.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp +- others/jsoncons/test/mergepatch/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::mergepatch::from_diff, from_diff + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/mergepatch/mergepatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. +- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vor. +- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp` vor. +- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp +- others/jsoncons/test/mergepatch/src +- Symbole: jsoncons::mergepatch::from_diff, from_diff +- Tests / Beispiele / Benchmarks: others/jsoncons/test/mergepatch/src diff --git a/analysis/jsoncons/ref/mergepatch/mergepatch.md b/analysis/jsoncons/ref/mergepatch/mergepatch.md new file mode 100644 index 0000000000..58f3f604f3 --- /dev/null +++ b/analysis/jsoncons/ref/mergepatch/mergepatch.md @@ -0,0 +1,51 @@ +# Analyse: others/jsoncons/doc/ref/mergepatch/mergepatch.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp +- others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp +- others/jsoncons/test/mergepatch/src +- Relevante Klassen/Funktionen/Symbole: mergepatch + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/mergepatch/mergepatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vorhanden. +- Das Symbol bzw. der Begriff `mergepatch` kommt in `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vor. +- Das Symbol bzw. der Begriff `mergepatch` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `mergepatch` kommt in `others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp` vor. +- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp +- others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp +- others/jsoncons/test/mergepatch/src +- Symbole: mergepatch +- Tests / Beispiele / Benchmarks: others/jsoncons/test/mergepatch/src diff --git a/analysis/jsoncons/ref/msgpack/basic_msgpack_cursor.md b/analysis/jsoncons/ref/msgpack/basic_msgpack_cursor.md new file mode 100644 index 0000000000..4ae245cf40 --- /dev/null +++ b/analysis/jsoncons/ref/msgpack/basic_msgpack_cursor.md @@ -0,0 +1,45 @@ +# Analyse: others/jsoncons/doc/ref/msgpack/basic_msgpack_cursor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor.hpp +- others/jsoncons/test/msgpack/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::msgpack::basic_msgpack_cursor, basic_msgpack_cursor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/msgpack/msgpack_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor.hpp +- others/jsoncons/test/msgpack/src +- Symbole: jsoncons::msgpack::basic_msgpack_cursor, basic_msgpack_cursor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/msgpack/src diff --git a/analysis/jsoncons/ref/msgpack/basic_msgpack_encoder.md b/analysis/jsoncons/ref/msgpack/basic_msgpack_encoder.md new file mode 100644 index 0000000000..b10079abe8 --- /dev/null +++ b/analysis/jsoncons/ref/msgpack/basic_msgpack_encoder.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/msgpack/basic_msgpack_encoder.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_encoder.hpp +- others/jsoncons/test/msgpack/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::msgpack::basic_msgpack_encoder, basic_msgpack_encoder, Destructor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/msgpack/msgpack_encoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/msgpack/msgpack_encoder.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/jsonschema_examples.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_encoder.hpp +- others/jsoncons/test/msgpack/src +- Symbole: jsoncons::msgpack::basic_msgpack_encoder, basic_msgpack_encoder, Destructor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/msgpack/src diff --git a/analysis/jsoncons/ref/msgpack/decode_msgpack.md b/analysis/jsoncons/ref/msgpack/decode_msgpack.md new file mode 100644 index 0000000000..4854ca66e1 --- /dev/null +++ b/analysis/jsoncons/ref/msgpack/decode_msgpack.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/msgpack/decode_msgpack.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/decode_msgpack.hpp +- others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp +- others/jsoncons/test/msgpack/src/encode_msgpack_tests.cpp +- others/jsoncons/test/msgpack/src/msgpack_bitset_traits_tests.cpp +- others/jsoncons/test/msgpack/src/msgpack_encoder_tests.cpp +- others/jsoncons/test/msgpack/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::msgpack::decode_msgpack, decode_msgpack + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/msgpack/msgpack.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp` vorhanden. +- Das Symbol bzw. der Begriff `decode_msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/decode_msgpack.hpp` vor. +- Das Symbol bzw. der Begriff `decode_msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp` vor. +- Das Symbol bzw. der Begriff `decode_msgpack` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/decode_msgpack.hpp +- others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp +- others/jsoncons/test/msgpack/src/encode_msgpack_tests.cpp +- others/jsoncons/test/msgpack/src/msgpack_bitset_traits_tests.cpp +- others/jsoncons/test/msgpack/src/msgpack_encoder_tests.cpp +- others/jsoncons/test/msgpack/src +- Symbole: jsoncons::msgpack::decode_msgpack, decode_msgpack +- Tests / Beispiele / Benchmarks: others/jsoncons/test/msgpack/src diff --git a/analysis/jsoncons/ref/msgpack/encode_msgpack.md b/analysis/jsoncons/ref/msgpack/encode_msgpack.md new file mode 100644 index 0000000000..dd9b034eb7 --- /dev/null +++ b/analysis/jsoncons/ref/msgpack/encode_msgpack.md @@ -0,0 +1,61 @@ +# Analyse: others/jsoncons/doc/ref/msgpack/encode_msgpack.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/encode_msgpack.hpp +- others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp +- others/jsoncons/test/msgpack/src/encode_msgpack_tests.cpp +- others/jsoncons/test/msgpack/src/msgpack_bitset_traits_tests.cpp +- others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp +- others/jsoncons/test/msgpack/src/msgpack_event_reader_tests.cpp +- others/jsoncons/test/msgpack/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::msgpack::encode_msgpack, encode_msgpack + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/msgpack/msgpack.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Das Symbol bzw. der Begriff `encode_msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/encode_msgpack.hpp` vor. +- Das Symbol bzw. der Begriff `encode_msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp` vor. +- Das Symbol bzw. der Begriff `encode_msgpack` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `encode_msgpack` kommt in `others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/encode_msgpack.hpp +- others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp +- others/jsoncons/test/msgpack/src/encode_msgpack_tests.cpp +- others/jsoncons/test/msgpack/src/msgpack_bitset_traits_tests.cpp +- others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp +- others/jsoncons/test/msgpack/src/msgpack_event_reader_tests.cpp +- others/jsoncons/test/msgpack/src +- Symbole: jsoncons::msgpack::encode_msgpack, encode_msgpack +- Tests / Beispiele / Benchmarks: others/jsoncons/test/msgpack/src diff --git a/analysis/jsoncons/ref/msgpack/msgpack.md b/analysis/jsoncons/ref/msgpack/msgpack.md new file mode 100644 index 0000000000..47811ac640 --- /dev/null +++ b/analysis/jsoncons/ref/msgpack/msgpack.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/msgpack/msgpack.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/decode_msgpack.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/encode_msgpack.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_encoder.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_error.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_event_reader.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_options.hpp +- others/jsoncons/test/msgpack/src +- Relevante Klassen/Funktionen/Symbole: msgpack + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/msgpack/msgpack.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp` vorhanden. +- Das Symbol bzw. der Begriff `msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/decode_msgpack.hpp` vor. +- Das Symbol bzw. der Begriff `msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/encode_msgpack.hpp` vor. +- Das Symbol bzw. der Begriff `msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp` vor. +- Das Symbol bzw. der Begriff `msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/decode_msgpack.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/encode_msgpack.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_encoder.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_error.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_event_reader.hpp +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_options.hpp +- others/jsoncons/test/msgpack/src +- Symbole: msgpack +- Tests / Beispiele / Benchmarks: others/jsoncons/test/msgpack/src diff --git a/analysis/jsoncons/ref/msgpack/msgpack_options.md b/analysis/jsoncons/ref/msgpack/msgpack_options.md new file mode 100644 index 0000000000..2ddb0dc0ab --- /dev/null +++ b/analysis/jsoncons/ref/msgpack/msgpack_options.md @@ -0,0 +1,46 @@ +# Analyse: others/jsoncons/doc/ref/msgpack/msgpack_options.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_options.hpp +- others/jsoncons/test/msgpack/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::msgpack::msgpack_options, msgpack_options, Modifiers + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/msgpack/msgpack_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/msgpack/msgpack_options.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Modifiers` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_encoder_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_options.hpp +- others/jsoncons/test/msgpack/src +- Symbole: jsoncons::msgpack::msgpack_options, msgpack_options, Modifiers +- Tests / Beispiele / Benchmarks: others/jsoncons/test/msgpack/src diff --git a/analysis/jsoncons/ref/toon/decode_toon.md b/analysis/jsoncons/ref/toon/decode_toon.md new file mode 100644 index 0000000000..aa080bee6e --- /dev/null +++ b/analysis/jsoncons/ref/toon/decode_toon.md @@ -0,0 +1,56 @@ +# Analyse: others/jsoncons/doc/ref/toon/decode_toon.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp +- others/jsoncons/test/toon/src/decode_toon_tests.cpp +- Relevante Klassen/Funktionen/Symbole: decode_toon, try_decode_toon, toon_reader + +## Kurzfazit +- Status: widersprüchlich +- Vertrauensniveau: hoch +- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. + +## Was durch Code belegt ist +- Die Implementierung liegt in [others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp](others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp). +- Der Header enthält neben String- und Stream-Overloads auch mehrere `allocator_set`-Overloads für `try_decode_toon`. +- Im ersten Beispiel der Doku wird `toon::decode_toon(toon_str);` ohne Zuweisung aufgerufen, danach aber `result` verwendet. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/toon/decode_toon.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp` vorhanden. +- Das Symbol bzw. der Begriff `decode_toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp` vor. +- Das Symbol bzw. der Begriff `decode_toon` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `decode_toon` kommt in `others/jsoncons/test/toon/src/decode_toon_tests.cpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die gezeigten Grundüberladungen für String und Stream existieren im Code. +- Bestätigt: Die ToON-Tests unter [others/jsoncons/test/toon/src](others/jsoncons/test/toon/src) stützen die Feature-Familie indirekt. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. +- Widerspruch: Der dokumentierte Include-Pfad `jsoncons/decode_toon.hpp` ist falsch; korrekt ist `jsoncons_ext/toon/decode_toon.hpp`. +- Widerspruch: Die Overload-Liste ist unvollständig, weil die vorhandenen `allocator_set`-Varianten nicht dokumentiert sind. +- Widerspruch: Das erste Beispiel ist in der gezeigten Form nicht kompilierbar, weil `result` nie deklariert oder initialisiert wird. +- Widerspruch: Der dokumentierte Include-Pfad `jsoncons/decode_toon.hpp` ist im aktuellen Repository nicht vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die High-Level-Helfer in `decode_toon.hpp` erzeugen pro Aufruf Decoder/Reader neu; zusätzliche `allocator_set`-Overloads sind vorhanden. Warum potenziell teuer: Bei vielen kleinen Eingaben wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: prüfenswerte Nutzung der `allocator_set`-Overloads oder der Reader/Decoder-APIs in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die Seite sollte die vorhandenen `allocator_set`-Overloads nennen, damit der datenpfad für kontrollierte Allokation dokumentiert ist. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Include auf `#include ` korrigieren. +- Das erste Beispiel mit einer Ergebnisvariable ergänzen, z. B. `auto result = toon::decode_toon(toon_str);`. +- Die `allocator_set`-Overloads ergänzen oder explizit als separate Optimierungsvariante verlinken. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp +- others/jsoncons/test/toon/src/decode_toon_tests.cpp +- Symbole: decode_toon, try_decode_toon, toon_reader +- Tests / Beispiele / Benchmarks: others/jsoncons/test/toon/src diff --git a/analysis/jsoncons/ref/toon/encode_toon.md b/analysis/jsoncons/ref/toon/encode_toon.md new file mode 100644 index 0000000000..ca78e2db1d --- /dev/null +++ b/analysis/jsoncons/ref/toon/encode_toon.md @@ -0,0 +1,55 @@ +# Analyse: others/jsoncons/doc/ref/toon/encode_toon.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon.hpp +- others/jsoncons/test/toon/src/encode_toon_tests.cpp +- others/jsoncons/test/toon/src/toon_test_suite.cpp +- others/jsoncons/test/toon/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::toon::encode_toon, encode_toon + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/toon/encode_toon.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/toon/toon.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/toon/toon.hpp` vorhanden. +- Das Symbol bzw. der Begriff `encode_toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp` vor. +- Das Symbol bzw. der Begriff `encode_toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon.hpp` vor. +- Das Symbol bzw. der Begriff `encode_toon` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `encode_toon` kommt in `others/jsoncons/test/toon/src/encode_toon_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon.hpp +- others/jsoncons/test/toon/src/encode_toon_tests.cpp +- others/jsoncons/test/toon/src/toon_test_suite.cpp +- others/jsoncons/test/toon/src +- Symbole: jsoncons::toon::encode_toon, encode_toon +- Tests / Beispiele / Benchmarks: others/jsoncons/test/toon/src diff --git a/analysis/jsoncons/ref/toon/key_folding_kind.md b/analysis/jsoncons/ref/toon/key_folding_kind.md new file mode 100644 index 0000000000..9f01b0fad9 --- /dev/null +++ b/analysis/jsoncons/ref/toon/key_folding_kind.md @@ -0,0 +1,42 @@ +# Analyse: others/jsoncons/doc/ref/toon/key_folding_kind.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp +- others/jsoncons/test/toon/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::toon::key_folding_kind, key_folding_kind + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: niedrig +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/toon/toon_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp` vorhanden. +- Das Symbol bzw. der Begriff `key_folding_kind` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. +- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp +- others/jsoncons/test/toon/src +- Symbole: jsoncons::toon::key_folding_kind, key_folding_kind +- Tests / Beispiele / Benchmarks: others/jsoncons/test/toon/src diff --git a/analysis/jsoncons/ref/toon/toon.md b/analysis/jsoncons/ref/toon/toon.md new file mode 100644 index 0000000000..4f537c2741 --- /dev/null +++ b/analysis/jsoncons/ref/toon/toon.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/toon/toon.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp +- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon_error.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp +- others/jsoncons/test/toon/src/decode_toon_tests.cpp +- others/jsoncons/test/toon/src +- Relevante Klassen/Funktionen/Symbole: Compliance, toon + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp` vor. +- Das Symbol bzw. der Begriff `toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp` vor. +- Das Symbol bzw. der Begriff `toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon.hpp` vor. +- Das Symbol bzw. der Begriff `toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_error.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/decode_toon_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp +- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon_error.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp +- others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp +- others/jsoncons/test/toon/src/decode_toon_tests.cpp +- others/jsoncons/test/toon/src +- Symbole: Compliance, toon +- Tests / Beispiele / Benchmarks: others/jsoncons/test/toon/src diff --git a/analysis/jsoncons/ref/toon/toon_delimiter_kind.md b/analysis/jsoncons/ref/toon/toon_delimiter_kind.md new file mode 100644 index 0000000000..2ad67499de --- /dev/null +++ b/analysis/jsoncons/ref/toon/toon_delimiter_kind.md @@ -0,0 +1,48 @@ +# Analyse: others/jsoncons/doc/ref/toon/toon_delimiter_kind.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp +- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp +- others/jsoncons/test/toon/src/toon_test_suite.cpp +- others/jsoncons/test/toon/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::toon::toon_delimiter_kind, toon_delimiter_kind + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: mittel +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/toon/toon_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp` vorhanden. +- Das Symbol bzw. der Begriff `toon_delimiter_kind` kommt in `others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp` vor. +- Das Symbol bzw. der Begriff `toon_delimiter_kind` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp` vor. +- Das Symbol bzw. der Begriff `toon_delimiter_kind` kommt in `others/jsoncons/test/toon/src/toon_test_suite.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_test_suite.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp +- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp +- others/jsoncons/test/toon/src/toon_test_suite.cpp +- others/jsoncons/test/toon/src +- Symbole: jsoncons::toon::toon_delimiter_kind, toon_delimiter_kind +- Tests / Beispiele / Benchmarks: others/jsoncons/test/toon/src diff --git a/analysis/jsoncons/ref/toon/toon_options.md b/analysis/jsoncons/ref/toon/toon_options.md new file mode 100644 index 0000000000..2dbcc09d98 --- /dev/null +++ b/analysis/jsoncons/ref/toon/toon_options.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/toon/toon_options.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp +- others/jsoncons/test/toon/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::toon::toon_options, toon_options, Constructor, Setters + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/toon/toon_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_reader_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_test_suite.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp +- others/jsoncons/test/toon/src +- Symbole: jsoncons::toon::toon_options, toon_options, Constructor, Setters +- Tests / Beispiele / Benchmarks: others/jsoncons/test/toon/src diff --git a/analysis/jsoncons/ref/ubjson/basic_ubjson_cursor.md b/analysis/jsoncons/ref/ubjson/basic_ubjson_cursor.md new file mode 100644 index 0000000000..aa83b76527 --- /dev/null +++ b/analysis/jsoncons/ref/ubjson/basic_ubjson_cursor.md @@ -0,0 +1,45 @@ +# Analyse: others/jsoncons/doc/ref/ubjson/basic_ubjson_cursor.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_cursor.hpp +- others/jsoncons/test/ubjson/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::ubjson::basic_ubjson_cursor, basic_ubjson_cursor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/ubjson/ubjson_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/ubjson/ubjson_cursor.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_cursor.hpp +- others/jsoncons/test/ubjson/src +- Symbole: jsoncons::ubjson::basic_ubjson_cursor, basic_ubjson_cursor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/ubjson/src diff --git a/analysis/jsoncons/ref/ubjson/basic_ubjson_encoder.md b/analysis/jsoncons/ref/ubjson/basic_ubjson_encoder.md new file mode 100644 index 0000000000..df1805720a --- /dev/null +++ b/analysis/jsoncons/ref/ubjson/basic_ubjson_encoder.md @@ -0,0 +1,47 @@ +# Analyse: others/jsoncons/doc/ref/ubjson/basic_ubjson_encoder.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_encoder.hpp +- others/jsoncons/test/ubjson/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::ubjson::basic_ubjson_encoder, basic_ubjson_encoder, Destructor + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/ubjson/ubjson_encoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/ubjson/ubjson_encoder.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/jsonschema_examples.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_encoder.hpp +- others/jsoncons/test/ubjson/src +- Symbole: jsoncons::ubjson::basic_ubjson_encoder, basic_ubjson_encoder, Destructor +- Tests / Beispiele / Benchmarks: others/jsoncons/test/ubjson/src diff --git a/analysis/jsoncons/ref/ubjson/decode_ubjson.md b/analysis/jsoncons/ref/ubjson/decode_ubjson.md new file mode 100644 index 0000000000..198ca75a88 --- /dev/null +++ b/analysis/jsoncons/ref/ubjson/decode_ubjson.md @@ -0,0 +1,55 @@ +# Analyse: others/jsoncons/doc/ref/ubjson/decode_ubjson.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/decode_ubjson.hpp +- others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp +- others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp +- others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp +- others/jsoncons/test/ubjson/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::ubjson::decode_ubjson, decode_ubjson + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/ubjson/ubjson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp` vorhanden. +- Das Symbol bzw. der Begriff `decode_ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/decode_ubjson.hpp` vor. +- Das Symbol bzw. der Begriff `decode_ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp` vor. +- Das Symbol bzw. der Begriff `decode_ubjson` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `decode_ubjson` kommt in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/decode_ubjson.hpp +- others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp +- others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp +- others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp +- others/jsoncons/test/ubjson/src +- Symbole: jsoncons::ubjson::decode_ubjson, decode_ubjson +- Tests / Beispiele / Benchmarks: others/jsoncons/test/ubjson/src diff --git a/analysis/jsoncons/ref/ubjson/encode_ubjson.md b/analysis/jsoncons/ref/ubjson/encode_ubjson.md new file mode 100644 index 0000000000..a861821f59 --- /dev/null +++ b/analysis/jsoncons/ref/ubjson/encode_ubjson.md @@ -0,0 +1,57 @@ +# Analyse: others/jsoncons/doc/ref/ubjson/encode_ubjson.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp +- others/jsoncons/examples/src/ubjson_examples.cpp +- others/jsoncons/include/jsoncons_ext/ubjson/encode_ubjson.hpp +- others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp +- others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp +- others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp +- others/jsoncons/test/ubjson/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::ubjson::encode_ubjson, encode_ubjson + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/ubjson/ubjson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp` vorhanden. +- Das Symbol bzw. der Begriff `encode_ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/encode_ubjson.hpp` vor. +- Das Symbol bzw. der Begriff `encode_ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp` vor. +- Das Symbol bzw. der Begriff `encode_ubjson` kommt in `others/jsoncons/test/CMakeLists.txt` vor. +- Das Symbol bzw. der Begriff `encode_ubjson` kommt in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp +- others/jsoncons/examples/src/ubjson_examples.cpp +- others/jsoncons/include/jsoncons_ext/ubjson/encode_ubjson.hpp +- others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp +- others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp +- others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp +- others/jsoncons/test/ubjson/src +- Symbole: jsoncons::ubjson::encode_ubjson, encode_ubjson +- Tests / Beispiele / Benchmarks: others/jsoncons/test/ubjson/src diff --git a/analysis/jsoncons/ref/ubjson/ubjson.md b/analysis/jsoncons/ref/ubjson/ubjson.md new file mode 100644 index 0000000000..84bd080623 --- /dev/null +++ b/analysis/jsoncons/ref/ubjson/ubjson.md @@ -0,0 +1,63 @@ +# Analyse: others/jsoncons/doc/ref/ubjson/ubjson.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/decode_ubjson.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/encode_ubjson.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_cursor.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_encoder.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_error.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_options.hpp +- Relevante Klassen/Funktionen/Symbole: nicht sicher belegbar + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/ubjson/ubjson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp` vorhanden. +- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. +- Das Symbol bzw. der Begriff `ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/decode_ubjson.hpp` vor. +- Das Symbol bzw. der Begriff `ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/encode_ubjson.hpp` vor. +- Das Symbol bzw. der Begriff `ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp` vor. +- Das Symbol bzw. der Begriff `ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/ubjson_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons/json.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp +- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp +- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/decode_ubjson.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/encode_ubjson.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_cursor.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_encoder.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_error.hpp +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_options.hpp +- Symbole: nicht sicher belegbar +- Tests / Beispiele / Benchmarks: others/jsoncons/test/ubjson/src diff --git a/analysis/jsoncons/ref/ubjson/ubjson_options.md b/analysis/jsoncons/ref/ubjson/ubjson_options.md new file mode 100644 index 0000000000..6751607503 --- /dev/null +++ b/analysis/jsoncons/ref/ubjson/ubjson_options.md @@ -0,0 +1,45 @@ +# Analyse: others/jsoncons/doc/ref/ubjson/ubjson_options.md + +## Zugehörige Implementierung +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_options.hpp +- others/jsoncons/test/ubjson/src +- Relevante Klassen/Funktionen/Symbole: jsoncons::ubjson::ubjson_options, ubjson_options, Modifiers + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `jsoncons_ext/ubjson/ubjson_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/ubjson/ubjson_options.hpp` vorhanden. +- Das Symbol bzw. der Begriff `Modifiers` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. +- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_options.hpp +- others/jsoncons/test/ubjson/src +- Symbole: jsoncons::ubjson::ubjson_options, ubjson_options, Modifiers +- Tests / Beispiele / Benchmarks: others/jsoncons/test/ubjson/src diff --git a/analysis/simdjson/SUMMARY.md b/analysis/simdjson/SUMMARY.md new file mode 100644 index 0000000000..5b231e9c29 --- /dev/null +++ b/analysis/simdjson/SUMMARY.md @@ -0,0 +1,44 @@ +# Summary: simdjson + +Diese Übersicht basiert auf statischer Analyse von Dokumentation, Headern, Tests, Beispielen und Benchmarks im Repository. Vorhandene Tests und Benchmarks wurden in diesem Turn nicht ausgeführt. + +## Übersicht aller geprüften Dateien + +| Doku-Datei | Status | Optimierbar | Priorität | Hauptgrund | +| --- | --- | --- | --- | --- | +| `others/simdjson/doc/basics_doxygen.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/simdjson/doc/implementation-selection.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/simdjson/doc/ondemand_design.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | +| `others/simdjson/doc/basics.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/simdjson/doc/builder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/simdjson/doc/compile_time.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/simdjson/doc/compile_time_accessors.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/simdjson/doc/dom.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/simdjson/doc/iterate_many.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/simdjson/doc/parse_many.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/simdjson/doc/performance.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | +| `others/simdjson/doc/tape.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | + +## Korrektheit + +- Bestätigt: 9 Dateien. +- Beispiele bestätigt: `others/simdjson/doc/basics.md`, `others/simdjson/doc/builder.md`, `others/simdjson/doc/compile_time.md`, `others/simdjson/doc/compile_time_accessors.md`, `others/simdjson/doc/dom.md`, `others/simdjson/doc/iterate_many.md`, `others/simdjson/doc/parse_many.md`, `others/simdjson/doc/performance.md` +- Teilweise unklar: 3 Dateien. +- Beispiele teilweise unklar: `others/simdjson/doc/basics_doxygen.md`, `others/simdjson/doc/implementation-selection.md`, `others/simdjson/doc/ondemand_design.md` +- Widersprüchlich: 0 Dateien. +- Wahrscheinlich veraltet: 0 Dateien. + +## Performance + +- Mittlere Priorität: `others/simdjson/doc/basics.md`, `others/simdjson/doc/builder.md`, `others/simdjson/doc/compile_time_accessors.md`, `others/simdjson/doc/dom.md`, `others/simdjson/doc/iterate_many.md`, `others/simdjson/doc/parse_many.md` +- Bereichsübergreifend auffällig: `at_path()`-Konvertierung zu JSON Pointer mit `std::string`-Allokation, Builder-Reallokationen bei zu kleiner Startkapazität sowie batch-size-abhängiges Streaming-Verhalten bei `parse_many()`/`iterate_many()`. + +## Verarbeitung + +- Mittlere Priorität: `others/simdjson/doc/basics.md`, `others/simdjson/doc/builder.md`, `others/simdjson/doc/dom.md`, `others/simdjson/doc/iterate_many.md`, `others/simdjson/doc/parse_many.md` + +## Doku-Anpassungen + +- Mittlere Priorität: `others/simdjson/doc/basics_doxygen.md`, `others/simdjson/doc/implementation-selection.md`, `others/simdjson/doc/ondemand_design.md`, `others/simdjson/doc/basics.md`, `others/simdjson/doc/builder.md`, `others/simdjson/doc/compile_time_accessors.md`, `others/simdjson/doc/dom.md`, `others/simdjson/doc/iterate_many.md`, `others/simdjson/doc/parse_many.md` +- Niedrige Priorität: `others/simdjson/doc/compile_time.md`, `others/simdjson/doc/performance.md`, `others/simdjson/doc/tape.md` +- Konkrete Schwerpunkte: vor allem Klarstellung konzeptioneller Seiten; keine harte API-Diskrepanz mit hoher Sicherheit gefunden. diff --git a/analysis/simdjson/basics.md b/analysis/simdjson/basics.md new file mode 100644 index 0000000000..eeb88f9f42 --- /dev/null +++ b/analysis/simdjson/basics.md @@ -0,0 +1,61 @@ +# Analyse: others/simdjson/doc/basics.md + +## Zugehörige Implementierung +- others/simdjson/include/simdjson.h +- others/simdjson/examples/quickstart/quickstart.cpp +- others/simdjson/examples/quickstart/quickstart_ondemand.cpp +- others/simdjson/include/simdjson/dom/parser.h +- others/simdjson/include/simdjson/generic/ondemand/document.h +- others/simdjson/include/simdjson/generic/ondemand/value.h +- others/simdjson/include/simdjson/ondemand.h +- others/simdjson/tests/dom/readme_examples.cpp +- others/simdjson/tests/dom/readme_examples_noexceptions.cpp +- others/simdjson/tests/ondemand/ondemand_readme_examples.cpp +- Relevante Klassen/Funktionen/Symbole: Parser, get to get custom types (pre-C++20) + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `simdjson.h` ist im Repository unter `others/simdjson/include/simdjson.h` vorhanden. +- Das Symbol bzw. der Begriff `basics` kommt in `others/simdjson/include/simdjson.h` vor. +- Das Symbol bzw. der Begriff `basics` kommt in `others/simdjson/include/simdjson/generic/ondemand/document.h` vor. +- Das Symbol bzw. der Begriff `basics` kommt in `others/simdjson/include/simdjson/generic/ondemand/value.h` vor. +- Das Symbol bzw. der Begriff `basics` kommt in `others/simdjson/tests/dom/readme_examples.cpp` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/cast_tester.h`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: DOM-`at_path()` ruft in [others/simdjson/include/simdjson/jsonpathutil.h](others/simdjson/include/simdjson/jsonpathutil.h) eine Konvertierung von JSONPath nach JSON Pointer auf und erzeugt dabei ein `std::string`; die Nutzung ist in [others/simdjson/include/simdjson/dom/element-inl.h](others/simdjson/include/simdjson/dom/element-inl.h), `object-inl.h` und `array-inl.h` sichtbar. Warum potenziell teuer: Wiederholte Pfadkonvertierung und String-Allokation fallen bei Hot-Loop-Zugriffen zusätzlich an. Mögliche Verbesserung: mögliche Optimierung durch `at_pointer()` oder die Compile-Time-Accessors statt `at_path()` auf häufig benutzten Pfaden. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die Verarbeitung wird klarer, wenn Parserlebensdauer, Dokumentlebensdauer und Pufferlebensdauer getrennt betrachtet werden; die Header und Tests modellieren diese Trennung bereits deutlich. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/simdjson/include/simdjson.h +- others/simdjson/examples/quickstart/quickstart.cpp +- others/simdjson/examples/quickstart/quickstart_ondemand.cpp +- others/simdjson/include/simdjson/dom/parser.h +- others/simdjson/include/simdjson/generic/ondemand/document.h +- others/simdjson/include/simdjson/generic/ondemand/value.h +- others/simdjson/include/simdjson/ondemand.h +- others/simdjson/tests/dom/readme_examples.cpp +- others/simdjson/tests/dom/readme_examples_noexceptions.cpp +- others/simdjson/tests/ondemand/ondemand_readme_examples.cpp +- Symbole: Parser, get to get custom types (pre-C++20) +- Tests / Beispiele / Benchmarks: others/simdjson/tests/ondemand/ondemand_readme_examples.cpp, others/simdjson/tests/dom/readme_examples.cpp, others/simdjson/examples/quickstart/quickstart.cpp, others/simdjson/examples/quickstart/quickstart_ondemand.cpp diff --git a/analysis/simdjson/basics_doxygen.md b/analysis/simdjson/basics_doxygen.md new file mode 100644 index 0000000000..01b8f2d4cd --- /dev/null +++ b/analysis/simdjson/basics_doxygen.md @@ -0,0 +1,43 @@ +# Analyse: others/simdjson/doc/basics_doxygen.md + +## Zugehörige Implementierung +- others/simdjson/include/simdjson/dom/parser.h +- others/simdjson/include/simdjson/ondemand.h +- others/simdjson/tests/dom/readme_examples.cpp +- others/simdjson/tests/ondemand/ondemand_readme_examples.cpp +- Relevante Klassen/Funktionen/Symbole: basics_doxygen + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: mittel +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist + +## Prüfung der inhaltlichen Korrektheit +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. +- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die Seite ist doxygen-orientiert und enthält wenig direkte API-Aussagen; die Zuordnung zur Implementierung ist vorhanden, aber nur indirekt über die Kernheader und Readme-Beispiele belegbar. +- Die vorhandenen Tests/Benchmarks wurden für diese Analyse nicht ausgeführt; die Einschätzung ist statisch. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/simdjson/include/simdjson/dom/parser.h +- others/simdjson/include/simdjson/ondemand.h +- others/simdjson/tests/dom/readme_examples.cpp +- others/simdjson/tests/ondemand/ondemand_readme_examples.cpp +- Symbole: basics_doxygen +- Tests / Beispiele / Benchmarks: others/simdjson/tests/ondemand/ondemand_readme_examples.cpp, others/simdjson/tests/dom/readme_examples.cpp diff --git a/analysis/simdjson/builder.md b/analysis/simdjson/builder.md new file mode 100644 index 0000000000..d2b6f8b41e --- /dev/null +++ b/analysis/simdjson/builder.md @@ -0,0 +1,62 @@ +# Analyse: others/simdjson/doc/builder.md + +## Zugehörige Implementierung +- others/simdjson/include/simdjson +- others/simdjson/include/simdjson.h +- others/simdjson/include/simdjson/builder.h +- others/simdjson/include/simdjson/compile_time_json-inl.h +- others/simdjson/include/simdjson/convert.h +- others/simdjson/include/simdjson/generic/builder/json_builder.h +- others/simdjson/include/simdjson/generic/builder/json_string_builder.h +- others/simdjson/include/simdjson/jsonpathutil.h +- others/simdjson/include/simdjson/ondemand.h +- others/simdjson/include/simdjson/padded_string-inl.h +- Relevante Klassen/Funktionen/Symbole: C++20, Customization, Pretty formatted (fractured JSON) + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `simdjson` ist im Repository unter `others/simdjson/include/simdjson` vorhanden. +- Der in der Doku verwendete Header `simdjson.h` ist im Repository unter `others/simdjson/include/simdjson.h` vorhanden. +- Das Symbol bzw. der Begriff `builder` kommt in `others/simdjson/include/simdjson.h` vor. +- Das Symbol bzw. der Begriff `builder` kommt in `others/simdjson/include/simdjson/builder.h` vor. +- Das Symbol bzw. der Begriff `builder` kommt in `others/simdjson/include/simdjson/compile_time_json-inl.h` vor. +- Das Symbol bzw. der Begriff `C++20` kommt in `others/simdjson/include/simdjson/convert.h` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/CMakeLists.txt`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `builder::string_builder` vergrößert seinen Puffer bei Bedarf dynamisch (`capacity_check`, `grow_buffer`) in [others/simdjson/include/simdjson/generic/builder/json_string_builder-inl.h](others/simdjson/include/simdjson/generic/builder/json_string_builder-inl.h). Warum potenziell teuer: Bei stark unterschätzter Startkapazität entstehen zusätzliche Reallokationen und Kopien. Mögliche Verbesserung: mögliche Optimierung durch sinnvolle Initialkapazität und Wiederverwendung derselben Builder-Instanz. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die Wiederverwendung eines `string_builder` vereinfacht den Datenfluss gegenüber vielen kurzlebigen `to_json`-Aufrufen mit impliziten Zwischenobjekten. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/simdjson/include/simdjson +- others/simdjson/include/simdjson.h +- others/simdjson/include/simdjson/builder.h +- others/simdjson/include/simdjson/compile_time_json-inl.h +- others/simdjson/include/simdjson/convert.h +- others/simdjson/include/simdjson/generic/builder/json_builder.h +- others/simdjson/include/simdjson/generic/builder/json_string_builder.h +- others/simdjson/include/simdjson/jsonpathutil.h +- others/simdjson/include/simdjson/ondemand.h +- others/simdjson/include/simdjson/padded_string-inl.h +- Symbole: C++20, Customization, Pretty formatted (fractured JSON) +- Tests / Beispiele / Benchmarks: others/simdjson/tests/builder/builder_string_builder_tests.cpp, others/simdjson/tests/builder/static_reflection_builder_tests.cpp diff --git a/analysis/simdjson/compile_time.md b/analysis/simdjson/compile_time.md new file mode 100644 index 0000000000..924dd426ae --- /dev/null +++ b/analysis/simdjson/compile_time.md @@ -0,0 +1,60 @@ +# Analyse: others/simdjson/doc/compile_time.md + +## Zugehörige Implementierung +- others/simdjson/include/simdjson.h +- others/simdjson/include/simdjson/compile_time_json-inl.h +- others/simdjson/include/simdjson/compile_time_json.h +- others/simdjson/include/simdjson/convert.h +- others/simdjson/include/simdjson/generic/builder/fractured_json_builder.h +- others/simdjson/include/simdjson/generic/ondemand/amalgamated.h +- others/simdjson/include/simdjson/generic/ondemand/compile_time_accessors.h +- others/simdjson/include/simdjson/generic/ondemand/document.h +- others/simdjson/tests/compile_time/basic_compile_time_tests.cpp +- others/simdjson/tests/compile_time/compile_time_json_tests.cpp +- Relevante Klassen/Funktionen/Symbole: Introduction, Concepts, Limitations (compile-time errors) + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `simdjson.h` ist im Repository unter `others/simdjson/include/simdjson.h` vorhanden. +- Das Symbol bzw. der Begriff `compile_time` kommt in `others/simdjson/include/simdjson.h` vor. +- Das Symbol bzw. der Begriff `compile_time` kommt in `others/simdjson/include/simdjson/compile_time_json-inl.h` vor. +- Das Symbol bzw. der Begriff `compile_time` kommt in `others/simdjson/include/simdjson/compile_time_json.h` vor. +- Das Symbol bzw. der Begriff `Example` kommt in `others/simdjson/include/simdjson/convert.h` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/simdjson/include/simdjson.h +- others/simdjson/include/simdjson/compile_time_json-inl.h +- others/simdjson/include/simdjson/compile_time_json.h +- others/simdjson/include/simdjson/convert.h +- others/simdjson/include/simdjson/generic/builder/fractured_json_builder.h +- others/simdjson/include/simdjson/generic/ondemand/amalgamated.h +- others/simdjson/include/simdjson/generic/ondemand/compile_time_accessors.h +- others/simdjson/include/simdjson/generic/ondemand/document.h +- others/simdjson/tests/compile_time/basic_compile_time_tests.cpp +- others/simdjson/tests/compile_time/compile_time_json_tests.cpp +- Symbole: Introduction, Concepts, Limitations (compile-time errors) +- Tests / Beispiele / Benchmarks: others/simdjson/tests/compile_time/basic_compile_time_tests.cpp, others/simdjson/tests/compile_time/compile_time_json_tests.cpp diff --git a/analysis/simdjson/compile_time_accessors.md b/analysis/simdjson/compile_time_accessors.md new file mode 100644 index 0000000000..3563d88b6a --- /dev/null +++ b/analysis/simdjson/compile_time_accessors.md @@ -0,0 +1,61 @@ +# Analyse: others/simdjson/doc/compile_time_accessors.md + +## Zugehörige Implementierung +- others/simdjson/include/simdjson.h +- others/simdjson/benchmark/accessor_performance/README.md +- others/simdjson/benchmark/accessor_performance/compile_time_accessors.h +- others/simdjson/benchmark/bench_ondemand.cpp +- others/simdjson/include/simdjson/generic/ondemand/amalgamated.h +- others/simdjson/include/simdjson/generic/ondemand/compile_time_accessors.h +- others/simdjson/tests/ondemand/compile_time_json_path_tests.cpp +- others/simdjson/tests/ondemand/compile_time_json_pointer_tests.cpp +- others/simdjson/tests/ondemand/compile_time_no_validation_tests.cpp +- Relevante Klassen/Funktionen/Symbole: Overview, Requirements, Mode 1: With Type Validation (Recommended) + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `simdjson.h` ist im Repository unter `others/simdjson/include/simdjson.h` vorhanden. +- Das Symbol bzw. der Begriff `compile_time_accessors` kommt in `others/simdjson/include/simdjson/generic/ondemand/amalgamated.h` vor. +- Das Symbol bzw. der Begriff `How It Works` kommt in `others/simdjson/include/simdjson/generic/ondemand/compile_time_accessors.h` vor. +- Das Symbol bzw. der Begriff `compile_time_accessors` kommt in `others/simdjson/benchmark/bench_ondemand.cpp` vor. +- Das Symbol bzw. der Begriff `compile_time_accessors` kommt in `others/simdjson/benchmark/accessor_performance/README.md` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/cast_tester.h`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/checkimplementation.cpp`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/fractured_json_tests.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: DOM-`at_path()` ruft in [others/simdjson/include/simdjson/jsonpathutil.h](others/simdjson/include/simdjson/jsonpathutil.h) eine Konvertierung von JSONPath nach JSON Pointer auf und erzeugt dabei ein `std::string`; die Nutzung ist in [others/simdjson/include/simdjson/dom/element-inl.h](others/simdjson/include/simdjson/dom/element-inl.h), `object-inl.h` und `array-inl.h` sichtbar. Warum potenziell teuer: Wiederholte Pfadkonvertierung und String-Allokation fallen bei Hot-Loop-Zugriffen zusätzlich an. Mögliche Verbesserung: mögliche Optimierung durch `at_pointer()` oder die Compile-Time-Accessors statt `at_path()` auf häufig benutzten Pfaden. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/simdjson/include/simdjson.h +- others/simdjson/benchmark/accessor_performance/README.md +- others/simdjson/benchmark/accessor_performance/compile_time_accessors.h +- others/simdjson/benchmark/bench_ondemand.cpp +- others/simdjson/include/simdjson/generic/ondemand/amalgamated.h +- others/simdjson/include/simdjson/generic/ondemand/compile_time_accessors.h +- others/simdjson/tests/ondemand/compile_time_json_path_tests.cpp +- others/simdjson/tests/ondemand/compile_time_json_pointer_tests.cpp +- others/simdjson/tests/ondemand/compile_time_no_validation_tests.cpp +- Symbole: Overview, Requirements, Mode 1: With Type Validation (Recommended) +- Tests / Beispiele / Benchmarks: others/simdjson/tests/ondemand/compile_time_json_path_tests.cpp, others/simdjson/tests/ondemand/compile_time_json_pointer_tests.cpp, others/simdjson/tests/ondemand/compile_time_no_validation_tests.cpp, others/simdjson/benchmark/accessor_performance/compile_time_accessors.h diff --git a/analysis/simdjson/dom.md b/analysis/simdjson/dom.md new file mode 100644 index 0000000000..e965b20c10 --- /dev/null +++ b/analysis/simdjson/dom.md @@ -0,0 +1,60 @@ +# Analyse: others/simdjson/doc/dom.md + +## Zugehörige Implementierung +- others/simdjson/include/simdjson.h +- others/simdjson/include/simdjson/arm64/implementation.h +- others/simdjson/include/simdjson/base.h +- others/simdjson/include/simdjson/dom.h +- others/simdjson/include/simdjson/dom/array-inl.h +- others/simdjson/include/simdjson/dom/array.h +- others/simdjson/include/simdjson/dom/element.h +- others/simdjson/include/simdjson/dom/object.h +- others/simdjson/include/simdjson/dom/parser.h +- others/simdjson/include/simdjson/error.h +- Relevante Klassen/Funktionen/Symbole: dom + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `simdjson.h` ist im Repository unter `others/simdjson/include/simdjson.h` vorhanden. +- Das Symbol bzw. der Begriff `dom` kommt in `others/simdjson/include/simdjson.h` vor. +- Das Symbol bzw. der Begriff `dom` kommt in `others/simdjson/include/simdjson/base.h` vor. +- Das Symbol bzw. der Begriff `dom` kommt in `others/simdjson/include/simdjson/dom.h` vor. +- Das Symbol bzw. der Begriff `dom` kommt in `others/simdjson/include/simdjson/error.h` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: DOM-`at_path()` ruft in [others/simdjson/include/simdjson/jsonpathutil.h](others/simdjson/include/simdjson/jsonpathutil.h) eine Konvertierung von JSONPath nach JSON Pointer auf und erzeugt dabei ein `std::string`; die Nutzung ist in [others/simdjson/include/simdjson/dom/element-inl.h](others/simdjson/include/simdjson/dom/element-inl.h), `object-inl.h` und `array-inl.h` sichtbar. Warum potenziell teuer: Wiederholte Pfadkonvertierung und String-Allokation fallen bei Hot-Loop-Zugriffen zusätzlich an. Mögliche Verbesserung: mögliche Optimierung durch `at_pointer()` oder die Compile-Time-Accessors statt `at_path()` auf häufig benutzten Pfaden. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die Verarbeitung wird klarer, wenn Parserlebensdauer, Dokumentlebensdauer und Pufferlebensdauer getrennt betrachtet werden; die Header und Tests modellieren diese Trennung bereits deutlich. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/simdjson/include/simdjson.h +- others/simdjson/include/simdjson/arm64/implementation.h +- others/simdjson/include/simdjson/base.h +- others/simdjson/include/simdjson/dom.h +- others/simdjson/include/simdjson/dom/array-inl.h +- others/simdjson/include/simdjson/dom/array.h +- others/simdjson/include/simdjson/dom/element.h +- others/simdjson/include/simdjson/dom/object.h +- others/simdjson/include/simdjson/dom/parser.h +- others/simdjson/include/simdjson/error.h +- Symbole: dom +- Tests / Beispiele / Benchmarks: others/simdjson/tests/dom/basictests.cpp, others/simdjson/tests/dom/json_path_tests.cpp, others/simdjson/tests/dom/document_tests.cpp diff --git a/analysis/simdjson/implementation-selection.md b/analysis/simdjson/implementation-selection.md new file mode 100644 index 0000000000..9d3f41b89f --- /dev/null +++ b/analysis/simdjson/implementation-selection.md @@ -0,0 +1,43 @@ +# Analyse: others/simdjson/doc/implementation-selection.md + +## Zugehörige Implementierung +- others/simdjson/include/simdjson/implementation.h +- others/simdjson/src/implementation.cpp +- others/simdjson/src/internal/isadetection.h +- others/simdjson/tests/checkimplementation.cpp +- Relevante Klassen/Funktionen/Symbole: implementation-selection + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: mittel +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist + +## Prüfung der inhaltlichen Korrektheit +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. +- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die Seite beschreibt überwiegend Architektur-/Build-Verhalten. Die zugrunde liegende Laufzeit-Erkennung ist im Code sichtbar, aber der Text wurde in diesem Turn nicht gegen reale Hardware-Pfade ausgeführt. +- Die vorhandenen Tests/Benchmarks wurden für diese Analyse nicht ausgeführt; die Einschätzung ist statisch. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/simdjson/include/simdjson/implementation.h +- others/simdjson/src/implementation.cpp +- others/simdjson/src/internal/isadetection.h +- others/simdjson/tests/checkimplementation.cpp +- Symbole: implementation-selection +- Tests / Beispiele / Benchmarks: others/simdjson/tests/checkimplementation.cpp diff --git a/analysis/simdjson/iterate_many.md b/analysis/simdjson/iterate_many.md new file mode 100644 index 0000000000..c1c8a2f7e2 --- /dev/null +++ b/analysis/simdjson/iterate_many.md @@ -0,0 +1,59 @@ +# Analyse: others/simdjson/doc/iterate_many.md + +## Zugehörige Implementierung +- others/simdjson/include/simdjson/arm64/simd.h +- others/simdjson/include/simdjson/dom/object-inl.h +- others/simdjson/include/simdjson/dom/parser.h +- others/simdjson/include/simdjson/generic/ondemand/base.h +- others/simdjson/include/simdjson/generic/ondemand/document_stream.h +- others/simdjson/include/simdjson/haswell/simd.h +- others/simdjson/include/simdjson/icelake/simd.h +- others/simdjson/include/simdjson/ppc64/simd.h +- others/simdjson/include/simdjson/westmere/simd.h +- others/simdjson/tests/ondemand/ondemand_document_stream_tests.cpp +- Relevante Klassen/Funktionen/Symbole: Context, Design, Threads, iterate_many + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `Design` kommt in `others/simdjson/include/simdjson/arm64/simd.h` vor. +- Das Symbol bzw. der Begriff `Design` kommt in `others/simdjson/include/simdjson/dom/object-inl.h` vor. +- Das Symbol bzw. der Begriff `Threads` kommt in `others/simdjson/include/simdjson/dom/parser.h` vor. +- Das Symbol bzw. der Begriff `Design` kommt in `others/simdjson/include/simdjson/haswell/simd.h` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/dom/allparserscheckfile.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `document_stream` arbeitet batch-basiert und hält dafür Parser-/Fensterzustand in [others/simdjson/include/simdjson/dom/document_stream.h](others/simdjson/include/simdjson/dom/document_stream.h) bzw. `document_stream-inl.h`. Warum potenziell teuer: Ein zu kleines Batch-Fenster erhöht Verwaltungsaufwand oder führt zu `truncated_bytes()`-Resten. Mögliche Verbesserung: mögliche Optimierung durch realistische `batch_size`-Wahl und Wiederverwendung desselben Parsers. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die Verarbeitung wird klarer, wenn Parserlebensdauer, Dokumentlebensdauer und Pufferlebensdauer getrennt betrachtet werden; die Header und Tests modellieren diese Trennung bereits deutlich. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/simdjson/include/simdjson/arm64/simd.h +- others/simdjson/include/simdjson/dom/object-inl.h +- others/simdjson/include/simdjson/dom/parser.h +- others/simdjson/include/simdjson/generic/ondemand/base.h +- others/simdjson/include/simdjson/generic/ondemand/document_stream.h +- others/simdjson/include/simdjson/haswell/simd.h +- others/simdjson/include/simdjson/icelake/simd.h +- others/simdjson/include/simdjson/ppc64/simd.h +- others/simdjson/include/simdjson/westmere/simd.h +- others/simdjson/tests/ondemand/ondemand_document_stream_tests.cpp +- Symbole: Context, Design, Threads, iterate_many +- Tests / Beispiele / Benchmarks: others/simdjson/tests/ondemand/ondemand_document_stream_tests.cpp, others/simdjson/tests/ondemand/ondemand_iterate_many_csv.cpp diff --git a/analysis/simdjson/ondemand_design.md b/analysis/simdjson/ondemand_design.md new file mode 100644 index 0000000000..510d0918f2 --- /dev/null +++ b/analysis/simdjson/ondemand_design.md @@ -0,0 +1,43 @@ +# Analyse: others/simdjson/doc/ondemand_design.md + +## Zugehörige Implementierung +- others/simdjson/include/simdjson/generic/ondemand/document.h +- others/simdjson/include/simdjson/ondemand.h +- others/simdjson/tests/ondemand/ondemand_document_stream_tests.cpp +- others/simdjson/tests/ondemand/ondemand_object_tests.cpp +- Relevante Klassen/Funktionen/Symbole: Event-Based Parsers (SAX, SAJ, etc.) + +## Kurzfazit +- Status: teilweise unklar +- Vertrauensniveau: mittel +- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. + +## Was durch Code belegt ist + +## Prüfung der inhaltlichen Korrektheit +- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. +- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die Seite ist überwiegend ein Designtext. Die relevanten Ondemand-Header und Tests existieren, aber die Designbehauptungen wurden nicht durch Ausführung oder Benchmarking validiert. +- Die vorhandenen Tests/Benchmarks wurden für diese Analyse nicht ausgeführt; die Einschätzung ist statisch. + +## Vorschläge zur Dokumentationsanpassung +- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. + +## Quellen im Repository +- others/simdjson/include/simdjson/generic/ondemand/document.h +- others/simdjson/include/simdjson/ondemand.h +- others/simdjson/tests/ondemand/ondemand_document_stream_tests.cpp +- others/simdjson/tests/ondemand/ondemand_object_tests.cpp +- Symbole: Event-Based Parsers (SAX, SAJ, etc.) +- Tests / Beispiele / Benchmarks: others/simdjson/tests/ondemand/ondemand_document_stream_tests.cpp, others/simdjson/tests/ondemand/ondemand_object_tests.cpp diff --git a/analysis/simdjson/parse_many.md b/analysis/simdjson/parse_many.md new file mode 100644 index 0000000000..c0df47ae3b --- /dev/null +++ b/analysis/simdjson/parse_many.md @@ -0,0 +1,59 @@ +# Analyse: others/simdjson/doc/parse_many.md + +## Zugehörige Implementierung +- others/simdjson/include/simdjson/arm64/simd.h +- others/simdjson/include/simdjson/dom/base.h +- others/simdjson/include/simdjson/dom/document_stream.h +- others/simdjson/include/simdjson/dom/object-inl.h +- others/simdjson/include/simdjson/dom/parser-inl.h +- others/simdjson/include/simdjson/dom/parser.h +- others/simdjson/include/simdjson/haswell/simd.h +- others/simdjson/include/simdjson/icelake/simd.h +- others/simdjson/tests/dom/document_stream_tests.cpp +- others/simdjson/tests/dom/parse_many_test.cpp +- Relevante Klassen/Funktionen/Symbole: Context, Design, Threads, parse_many + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `Design` kommt in `others/simdjson/include/simdjson/arm64/simd.h` vor. +- Das Symbol bzw. der Begriff `parse_many` kommt in `others/simdjson/include/simdjson/dom/base.h` vor. +- Das Symbol bzw. der Begriff `parse_many` kommt in `others/simdjson/include/simdjson/dom/document_stream.h` vor. +- Das Symbol bzw. der Begriff `Design` kommt in `others/simdjson/include/simdjson/dom/object-inl.h` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/compilation_failure_tests/CMakeLists.txt`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Beobachtung: `document_stream` arbeitet batch-basiert und hält dafür Parser-/Fensterzustand in [others/simdjson/include/simdjson/dom/document_stream.h](others/simdjson/include/simdjson/dom/document_stream.h) bzw. `document_stream-inl.h`. Warum potenziell teuer: Ein zu kleines Batch-Fenster erhöht Verwaltungsaufwand oder führt zu `truncated_bytes()`-Resten. Mögliche Verbesserung: mögliche Optimierung durch realistische `batch_size`-Wahl und Wiederverwendung desselben Parsers. Sicherheitsgrad der Aussage: hoch. + +## Potenzielle Verbesserungen in der Verarbeitung +- Die Verarbeitung wird klarer, wenn Parserlebensdauer, Dokumentlebensdauer und Pufferlebensdauer getrennt betrachtet werden; die Header und Tests modellieren diese Trennung bereits deutlich. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/simdjson/include/simdjson/arm64/simd.h +- others/simdjson/include/simdjson/dom/base.h +- others/simdjson/include/simdjson/dom/document_stream.h +- others/simdjson/include/simdjson/dom/object-inl.h +- others/simdjson/include/simdjson/dom/parser-inl.h +- others/simdjson/include/simdjson/dom/parser.h +- others/simdjson/include/simdjson/haswell/simd.h +- others/simdjson/include/simdjson/icelake/simd.h +- others/simdjson/tests/dom/document_stream_tests.cpp +- others/simdjson/tests/dom/parse_many_test.cpp +- Symbole: Context, Design, Threads, parse_many +- Tests / Beispiele / Benchmarks: others/simdjson/tests/dom/parse_many_test.cpp, others/simdjson/tests/dom/document_stream_tests.cpp diff --git a/analysis/simdjson/performance.md b/analysis/simdjson/performance.md new file mode 100644 index 0000000000..94c6e019a6 --- /dev/null +++ b/analysis/simdjson/performance.md @@ -0,0 +1,62 @@ +# Analyse: others/simdjson/doc/performance.md + +## Zugehörige Implementierung +- others/simdjson/include/simdjson.h +- others/simdjson/benchmark/bench_dom_api.cpp +- others/simdjson/benchmark/bench_ondemand.cpp +- others/simdjson/benchmark/benchmark.h +- others/simdjson/doc/performance.md +- others/simdjson/include/simdjson/arm64/simd.h +- others/simdjson/include/simdjson/dom/document_stream-inl.h +- others/simdjson/include/simdjson/dom/object-inl.h +- others/simdjson/include/simdjson/dom/parser.h +- others/simdjson/include/simdjson/dom/serialization-inl.h +- Relevante Klassen/Funktionen/Symbole: performance + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Der in der Doku verwendete Header `simdjson.h` ist im Repository unter `others/simdjson/include/simdjson.h` vorhanden. +- Das Symbol bzw. der Begriff `performance` kommt in `others/simdjson/include/simdjson/implementation.h` vor. +- Das Symbol bzw. der Begriff `performance` kommt in `others/simdjson/include/simdjson/padded_string.h` vor. +- Das Symbol bzw. der Begriff `performance` kommt in `others/simdjson/include/simdjson/arm64/simd.h` vor. +- Das Symbol bzw. der Begriff `performance` kommt in `others/simdjson/include/simdjson/dom/document_stream-inl.h` vor. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/cast_tester.h`. +- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/checkimplementation.cpp`. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/simdjson/include/simdjson.h +- others/simdjson/benchmark/bench_dom_api.cpp +- others/simdjson/benchmark/bench_ondemand.cpp +- others/simdjson/benchmark/benchmark.h +- others/simdjson/doc/performance.md +- others/simdjson/include/simdjson/arm64/simd.h +- others/simdjson/include/simdjson/dom/document_stream-inl.h +- others/simdjson/include/simdjson/dom/object-inl.h +- others/simdjson/include/simdjson/dom/parser.h +- others/simdjson/include/simdjson/dom/serialization-inl.h +- Symbole: performance +- Tests / Beispiele / Benchmarks: others/simdjson/benchmark/bench_ondemand.cpp, others/simdjson/benchmark/bench_dom_api.cpp diff --git a/analysis/simdjson/tape.md b/analysis/simdjson/tape.md new file mode 100644 index 0000000000..257ac9d66c --- /dev/null +++ b/analysis/simdjson/tape.md @@ -0,0 +1,58 @@ +# Analyse: others/simdjson/doc/tape.md + +## Zugehörige Implementierung +- others/simdjson/include/simdjson/base.h +- others/simdjson/include/simdjson/convert.h +- others/simdjson/include/simdjson/dom.h +- others/simdjson/include/simdjson/dom/array-inl.h +- others/simdjson/include/simdjson/dom/array.h +- others/simdjson/include/simdjson/dom/base.h +- others/simdjson/include/simdjson/dom/document-inl.h +- others/simdjson/include/simdjson/dom/document.h +- others/simdjson/src/generic/stage2/tape_builder.h +- others/simdjson/tests/dom/document_tests.cpp +- Relevante Klassen/Funktionen/Symbole: nicht sicher belegbar + +## Kurzfazit +- Status: korrekt +- Vertrauensniveau: hoch +- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. + +## Was durch Code belegt ist +- Das Symbol bzw. der Begriff `tape` kommt in `others/simdjson/include/simdjson/base.h` vor. +- Das Symbol bzw. der Begriff `Example` kommt in `others/simdjson/include/simdjson/convert.h` vor. +- Das Symbol bzw. der Begriff `tape` kommt in `others/simdjson/include/simdjson/dom.h` vor. +- Das Symbol bzw. der Begriff `tape` kommt in `others/simdjson/include/simdjson/dom/array-inl.h` vor. + +## Prüfung der inhaltlichen Korrektheit +- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. +- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. + +## Mögliche Probleme in der Implementierung +- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. + +## Potenzielle Performance-Verbesserungen +- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. + +## Potenzielle Verbesserungen in der Verarbeitung +- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. + +## Unklarheiten / nicht belegbare Punkte +- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. + +## Vorschläge zur Dokumentationsanpassung +- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. + +## Quellen im Repository +- others/simdjson/include/simdjson/base.h +- others/simdjson/include/simdjson/convert.h +- others/simdjson/include/simdjson/dom.h +- others/simdjson/include/simdjson/dom/array-inl.h +- others/simdjson/include/simdjson/dom/array.h +- others/simdjson/include/simdjson/dom/base.h +- others/simdjson/include/simdjson/dom/document-inl.h +- others/simdjson/include/simdjson/dom/document.h +- others/simdjson/src/generic/stage2/tape_builder.h +- others/simdjson/tests/dom/document_tests.cpp +- Symbole: nicht sicher belegbar +- Tests / Beispiele / Benchmarks: others/simdjson/tests/dom/document_tests.cpp From c8506d3e5fc4a75500aa4086c2c67fe5a9f3f721 Mon Sep 17 00:00:00 2001 From: Jens Date: Sat, 11 Apr 2026 19:37:34 +0200 Subject: [PATCH 06/17] test error corrected --- src/operators/validate_byte_range.cc | 130 ++++++++++++++++++--------- src/operators/validate_byte_range.h | 18 ++-- test/Makefile.am | 12 ++- 3 files changed, 104 insertions(+), 56 deletions(-) diff --git a/src/operators/validate_byte_range.cc b/src/operators/validate_byte_range.cc index 05d06c7880..602c453ea9 100644 --- a/src/operators/validate_byte_range.cc +++ b/src/operators/validate_byte_range.cc @@ -15,6 +15,8 @@ #include "src/operators/validate_byte_range.h" +#include +#include #include #include @@ -23,18 +25,73 @@ namespace modsecurity { namespace operators { +namespace { + +std::string trimCopy(const std::string &value) { + std::string::size_type start = 0; + std::string::size_type end = value.size(); + + while (start < end + && std::isspace(static_cast(value[start]))) { + start++; + } + while (end > start + && std::isspace(static_cast(value[end - 1]))) { + end--; + } + + return value.substr(start, end - start); +} + +bool parseStrictInt(const std::string &value, int *result, std::string *error) { + const std::string trimmed = trimCopy(value); + + if (trimmed.empty()) { + error->assign("Not able to convert '" + value + "' into a number"); + return false; + } + + size_t pos = 0; + + try { + *result = std::stoi(trimmed, &pos); + } catch (...) { + error->assign("Not able to convert '" + trimmed + "' into a number"); + return false; + } + + if (pos != trimmed.size()) { + error->assign("Not able to convert '" + trimmed + "' into a number"); + return false; + } + + return true; +} + +inline void allowByte(std::array *table, int value) { + (*table)[value >> 3] = ((*table)[value >> 3] + | (1U << static_cast(value & 0x7))); +} + +} // namespace + + bool ValidateByteRange::getRange(const std::string &rangeRepresentation, std::string *error) { - size_t pos = rangeRepresentation.find_first_of("-"); - int start; - int end; + return getRange(rangeRepresentation, &table, error); +} + + +bool ValidateByteRange::getRange(const std::string &rangeRepresentation, + std::array *targetTable, + std::string *error) const { + const std::string range = trimCopy(rangeRepresentation); + const size_t pos = range.find_first_of("-"); + int start = 0; + int end = 0; if (pos == std::string::npos) { - try { - start = std::stoi(rangeRepresentation); - } catch(...) { - error->assign("Not able to convert '" + rangeRepresentation + - "' into a number"); + if (parseStrictInt(range, &start, error) == false) { return false; } if ((start < 0) || (start > 255)) { @@ -42,26 +99,16 @@ bool ValidateByteRange::getRange(const std::string &rangeRepresentation, std::to_string(start)); return false; } - table[start >> 3] = (table[start >> 3] | (1 << (start & 0x7))); + allowByte(targetTable, start); return true; } - try { - start = std::stoi(std::string(rangeRepresentation, 0, pos)); - } catch (...) { - error->assign("Not able to convert '" + - std::string(rangeRepresentation, 0, pos) + - "' into a number"); + if (parseStrictInt(std::string(range, 0, pos), &start, error) == false) { return false; } - try { - end = std::stoi(std::string(rangeRepresentation, pos + 1, - rangeRepresentation.length() - (pos + 1))); - } catch (...) { - error->assign("Not able to convert '" + std::string(rangeRepresentation, - pos + 1, rangeRepresentation.length() - (pos + 1)) + - "' into a number"); + if (parseStrictInt(std::string(range, pos + 1, + range.length() - (pos + 1)), &end, error) == false) { return false; } @@ -81,7 +128,7 @@ bool ValidateByteRange::getRange(const std::string &rangeRepresentation, } while (start <= end) { - table[start >> 3] = (table[start >> 3] | (1 << (start & 0x7))); + allowByte(targetTable, start); start++; } @@ -91,34 +138,29 @@ bool ValidateByteRange::getRange(const std::string &rangeRepresentation, bool ValidateByteRange::init(const std::string &file, std::string *error) { - size_t pos = m_param.find_first_of(","); - bool rc; + std::array parsedTable{}; + std::string::size_type pos = 0; - if (pos == std::string::npos) { - rc = getRange(m_param, error); - } else { - rc = getRange(std::string(m_param, 0, pos), error); - } + table.fill('\0'); - if (rc == false) { - return false; - } + while (true) { + const std::string::size_type nextPos = m_param.find(',', pos); + const std::string token = nextPos == std::string::npos + ? m_param.substr(pos) + : m_param.substr(pos, nextPos - pos); - while (pos != std::string::npos) { - size_t next_pos = m_param.find_first_of(",", pos + 1); - - if (next_pos == std::string::npos) { - rc = getRange(std::string(m_param, pos + 1, m_param.length() - - (pos + 1)), error); - } else { - rc = getRange(std::string(m_param, pos + 1, next_pos - (pos + 1)), error); - } - if (rc == false) { + if (getRange(token, &parsedTable, error) == false) { return false; } - pos = next_pos; + + if (nextPos == std::string::npos) { + break; + } + + pos = nextPos + 1; } + table = parsedTable; return true; } diff --git a/src/operators/validate_byte_range.h b/src/operators/validate_byte_range.h index 7551171b01..f9d137a18b 100644 --- a/src/operators/validate_byte_range.h +++ b/src/operators/validate_byte_range.h @@ -16,11 +16,9 @@ #ifndef SRC_OPERATORS_VALIDATE_BYTE_RANGE_H_ #define SRC_OPERATORS_VALIDATE_BYTE_RANGE_H_ +#include #include -#include -#include #include -#include #include "src/operators/operator.h" @@ -32,9 +30,7 @@ class ValidateByteRange : public Operator { public: /** @ingroup ModSecurity_Operator */ explicit ValidateByteRange(std::unique_ptr param) - : Operator("ValidateByteRange", std::move(param)) { - std::memset(table, '\0', sizeof(char) * 32); - } + : Operator("ValidateByteRange", std::move(param)) { } ~ValidateByteRange() override { } bool evaluate(Transaction *transaction, RuleWithActions *rule, @@ -42,9 +38,15 @@ class ValidateByteRange : public Operator { RuleMessage &ruleMessage) override; bool getRange(const std::string &rangeRepresentation, std::string *error); bool init(const std::string& file, std::string *error) override; + private: - std::vector ranges; - char table[32]; + static constexpr size_t kTableSize = 32; + + bool getRange(const std::string &rangeRepresentation, + std::array *targetTable, + std::string *error) const; + + std::array table{}; }; } // namespace operators diff --git a/test/Makefile.am b/test/Makefile.am index 98856f20a8..ecb54d2f57 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -36,10 +36,14 @@ unit_tests_SOURCES = \ noinst_HEADERS = \ - common/modsecurity_test.cc \ - common/*.h \ - unit/*.h \ - regression/*.h + $(srcdir)/common/colors.h \ + $(srcdir)/common/custom_debug_log.h \ + $(srcdir)/common/json.h \ + $(srcdir)/common/modsecurity_test.h \ + $(srcdir)/common/modsecurity_test_context.h \ + $(srcdir)/common/modsecurity_test_results.h \ + $(srcdir)/unit/unit_test.h \ + $(srcdir)/regression/regression_test.h unit_tests_LDADD = \ From d0589143e206bd0c830e492cf7812ae1acc334a6 Mon Sep 17 00:00:00 2001 From: Jens Date: Sat, 11 Apr 2026 23:28:19 +0200 Subject: [PATCH 07/17] Remove duplicate code, performance optimization --- README.md | 8 + build/.empty | 0 build/ax_cxx_compile_stdcxx.m4 | 1018 ----------------- build/ax_prog_doxygen.m4 | 533 --------- build/ax_valgrind_check.m4 | 236 ---- build/curl.m4 | 36 - build/libgeoip.m4 | 12 - build/libmaxmind.m4 | 12 - build/libxml.m4 | 12 - build/lmdb.m4 | 29 - build/lua.m4 | 98 -- build/msc_find_lib.m4 | 266 ----- build/pcre.m4 | 50 - build/pcre2.m4 | 13 - build/release.sh | 21 - build/ssdeep.m4 | 11 - build/win32/CMakeLists.txt | 293 ----- build/win32/ConfigureChecks.cmake | 18 - build/win32/README.md | 112 -- build/win32/conanfile.txt | 13 - build/win32/config.h.cmake | 95 -- build/win32/docker/Dockerfile | 115 -- build/win32/docker/InstallBuildTools.cmd | 17 - build/win32/docker/git.inf | 20 - configure.ac | 12 + src/Makefile.am | 3 +- .../transformations/utf8_to_unicode.cc | 129 +-- src/request_body_processor/json.cc | 125 +- .../json_backend_jsoncons.cc | 42 + .../json_backend_simdjson.cc | 33 + .../json_instrumentation.cc | 118 ++ .../json_instrumentation.h | 54 + src/transaction.cc | 34 +- src/utils/msc_tree.cc | 50 +- src/variables/variable.h | 301 ++--- test/Makefile.am | 3 +- test/benchmark/Makefile.am | 26 +- test/benchmark/json_benchmark.cc | 495 ++++++++ test/benchmark/json_benchmark_rules.conf | 9 + test/benchmark/run-json-benchmarks.sh | 83 ++ test/run-json-backend-matrix.sh | 196 ++++ 41 files changed, 1305 insertions(+), 3446 deletions(-) delete mode 100644 build/.empty delete mode 100644 build/ax_cxx_compile_stdcxx.m4 delete mode 100644 build/ax_prog_doxygen.m4 delete mode 100644 build/ax_valgrind_check.m4 delete mode 100644 build/curl.m4 delete mode 100644 build/libgeoip.m4 delete mode 100644 build/libmaxmind.m4 delete mode 100644 build/libxml.m4 delete mode 100644 build/lmdb.m4 delete mode 100644 build/lua.m4 delete mode 100644 build/msc_find_lib.m4 delete mode 100644 build/pcre.m4 delete mode 100644 build/pcre2.m4 delete mode 100755 build/release.sh delete mode 100644 build/ssdeep.m4 delete mode 100644 build/win32/CMakeLists.txt delete mode 100644 build/win32/ConfigureChecks.cmake delete mode 100644 build/win32/README.md delete mode 100644 build/win32/conanfile.txt delete mode 100644 build/win32/config.h.cmake delete mode 100644 build/win32/docker/Dockerfile delete mode 100644 build/win32/docker/InstallBuildTools.cmd delete mode 100644 build/win32/docker/git.inf create mode 100644 src/request_body_processor/json_instrumentation.cc create mode 100644 src/request_body_processor/json_instrumentation.h create mode 100644 test/benchmark/json_benchmark.cc create mode 100644 test/benchmark/json_benchmark_rules.conf create mode 100755 test/benchmark/run-json-benchmarks.sh create mode 100755 test/run-json-backend-matrix.sh diff --git a/README.md b/README.md index 50b8833319..9d3c7ab8d0 100644 --- a/README.md +++ b/README.md @@ -253,6 +253,12 @@ It is recommended to use assertions where applicable, and to enable them with The source tree includes a Benchmark tool that can help measure library performance. The tool is located in the `test/benchmark/` directory. The build process also creates the binary here, so you will have the tool after the compilation is finished. +To compare the JSON regression suite across both supported JSON backends with separate build directories, run: + +```shell +$ ./test/run-json-backend-matrix.sh --jobs 4 +``` + To run, just type: ```shell @@ -323,6 +329,8 @@ Note that the tool does not call the last phase (logging). Please remember to reset `basic_rules.conf` if you want to try with a different ruleset. +The benchmark directory also includes `json_benchmark`, which targets JSON request-body processing with fixed scenario classes such as large objects, deep nesting, numeric payloads and UTF-8-heavy strings. + ## Reporting Issues If you are facing a configuration issue or something is not working as you diff --git a/build/.empty b/build/.empty deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/build/ax_cxx_compile_stdcxx.m4 b/build/ax_cxx_compile_stdcxx.m4 deleted file mode 100644 index 8edf5152ec..0000000000 --- a/build/ax_cxx_compile_stdcxx.m4 +++ /dev/null @@ -1,1018 +0,0 @@ -# =========================================================================== -# https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional]) -# -# DESCRIPTION -# -# Check for baseline language coverage in the compiler for the specified -# version of the C++ standard. If necessary, add switches to CXX and -# CXXCPP to enable support. VERSION may be '11', '14', '17', or '20' for -# the respective C++ standard version. -# -# The second argument, if specified, indicates whether you insist on an -# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. -# -std=c++11). If neither is specified, you get whatever works, with -# preference for no added switch, and then for an extended mode. -# -# The third argument, if specified 'mandatory' or if left unspecified, -# indicates that baseline support for the specified C++ standard is -# required and that the macro should error out if no mode with that -# support is found. If specified 'optional', then configuration proceeds -# regardless, after defining HAVE_CXX${VERSION} if and only if a -# supporting mode is found. -# -# LICENSE -# -# Copyright (c) 2008 Benjamin Kosnik -# Copyright (c) 2012 Zack Weinberg -# Copyright (c) 2013 Roy Stogner -# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov -# Copyright (c) 2015 Paul Norman -# Copyright (c) 2015 Moritz Klammler -# Copyright (c) 2016, 2018 Krzesimir Nowak -# Copyright (c) 2019 Enji Cooper -# Copyright (c) 2020 Jason Merrill -# Copyright (c) 2021 Jörn Heusipp -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 18 - -dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro -dnl (serial version number 13). - -AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl - m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"], - [$1], [14], [ax_cxx_compile_alternatives="14 1y"], - [$1], [17], [ax_cxx_compile_alternatives="17 1z"], - [$1], [20], [ax_cxx_compile_alternatives="20"], - [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl - m4_if([$2], [], [], - [$2], [ext], [], - [$2], [noext], [], - [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl - m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true], - [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true], - [$3], [optional], [ax_cxx_compile_cxx$1_required=false], - [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) - AC_LANG_PUSH([C++])dnl - ac_success=no - - m4_if([$2], [], [dnl - AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, - ax_cv_cxx_compile_cxx$1, - [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], - [ax_cv_cxx_compile_cxx$1=yes], - [ax_cv_cxx_compile_cxx$1=no])]) - if test x$ax_cv_cxx_compile_cxx$1 = xyes; then - ac_success=yes - fi]) - - m4_if([$2], [noext], [], [dnl - if test x$ac_success = xno; then - for alternative in ${ax_cxx_compile_alternatives}; do - switch="-std=gnu++${alternative}" - cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) - AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, - $cachevar, - [ac_save_CXX="$CXX" - CXX="$CXX $switch" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], - [eval $cachevar=yes], - [eval $cachevar=no]) - CXX="$ac_save_CXX"]) - if eval test x\$$cachevar = xyes; then - CXX="$CXX $switch" - if test -n "$CXXCPP" ; then - CXXCPP="$CXXCPP $switch" - fi - ac_success=yes - break - fi - done - fi]) - - m4_if([$2], [ext], [], [dnl - if test x$ac_success = xno; then - dnl HP's aCC needs +std=c++11 according to: - dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf - dnl Cray's crayCC needs "-h std=c++11" - dnl MSVC needs -std:c++NN for C++17 and later (default is C++14) - for alternative in ${ax_cxx_compile_alternatives}; do - for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}" MSVC; do - if test x"$switch" = xMSVC; then - dnl AS_TR_SH maps both `:` and `=` to `_` so -std:c++17 would collide - dnl with -std=c++17. We suffix the cache variable name with _MSVC to - dnl avoid this. - switch=-std:c++${alternative} - cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_${switch}_MSVC]) - else - cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) - fi - AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, - $cachevar, - [ac_save_CXX="$CXX" - CXX="$CXX $switch" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], - [eval $cachevar=yes], - [eval $cachevar=no]) - CXX="$ac_save_CXX"]) - if eval test x\$$cachevar = xyes; then - CXX="$CXX $switch" - if test -n "$CXXCPP" ; then - CXXCPP="$CXXCPP $switch" - fi - ac_success=yes - break - fi - done - if test x$ac_success = xyes; then - break - fi - done - fi]) - AC_LANG_POP([C++]) - if test x$ax_cxx_compile_cxx$1_required = xtrue; then - if test x$ac_success = xno; then - AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.]) - fi - fi - if test x$ac_success = xno; then - HAVE_CXX$1=0 - AC_MSG_NOTICE([No compiler with C++$1 support was found]) - else - HAVE_CXX$1=1 - AC_DEFINE(HAVE_CXX$1,1, - [define if the compiler supports basic C++$1 syntax]) - fi - AC_SUBST(HAVE_CXX$1) -]) - - -dnl Test body for checking C++11 support - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11], - _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 -) - -dnl Test body for checking C++14 support - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], - _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 - _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 -) - -dnl Test body for checking C++17 support - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17], - _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 - _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 - _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 -) - -dnl Test body for checking C++20 support - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_20], - _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 - _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 - _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 - _AX_CXX_COMPILE_STDCXX_testbody_new_in_20 -) - - -dnl Tests for new features in C++11 - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ - -// If the compiler admits that it is not ready for C++11, why torture it? -// Hopefully, this will speed up the test. - -#ifndef __cplusplus - -#error "This is not a C++ compiler" - -// MSVC always sets __cplusplus to 199711L in older versions; newer versions -// only set it correctly if /Zc:__cplusplus is specified as well as a -// /std:c++NN switch: -// https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/ -#elif __cplusplus < 201103L && !defined _MSC_VER - -#error "This is not a C++11 compiler" - -#else - -namespace cxx11 -{ - - namespace test_static_assert - { - - template - struct check - { - static_assert(sizeof(int) <= sizeof(T), "not big enough"); - }; - - } - - namespace test_final_override - { - - struct Base - { - virtual ~Base() {} - virtual void f() {} - }; - - struct Derived : public Base - { - virtual ~Derived() override {} - virtual void f() override {} - }; - - } - - namespace test_double_right_angle_brackets - { - - template < typename T > - struct check {}; - - typedef check single_type; - typedef check> double_type; - typedef check>> triple_type; - typedef check>>> quadruple_type; - - } - - namespace test_decltype - { - - int - f() - { - int a = 1; - decltype(a) b = 2; - return a + b; - } - - } - - namespace test_type_deduction - { - - template < typename T1, typename T2 > - struct is_same - { - static const bool value = false; - }; - - template < typename T > - struct is_same - { - static const bool value = true; - }; - - template < typename T1, typename T2 > - auto - add(T1 a1, T2 a2) -> decltype(a1 + a2) - { - return a1 + a2; - } - - int - test(const int c, volatile int v) - { - static_assert(is_same::value == true, ""); - static_assert(is_same::value == false, ""); - static_assert(is_same::value == false, ""); - auto ac = c; - auto av = v; - auto sumi = ac + av + 'x'; - auto sumf = ac + av + 1.0; - static_assert(is_same::value == true, ""); - static_assert(is_same::value == true, ""); - static_assert(is_same::value == true, ""); - static_assert(is_same::value == false, ""); - static_assert(is_same::value == true, ""); - return (sumf > 0.0) ? sumi : add(c, v); - } - - } - - namespace test_noexcept - { - - int f() { return 0; } - int g() noexcept { return 0; } - - static_assert(noexcept(f()) == false, ""); - static_assert(noexcept(g()) == true, ""); - - } - - namespace test_constexpr - { - - template < typename CharT > - unsigned long constexpr - strlen_c_r(const CharT *const s, const unsigned long acc) noexcept - { - return *s ? strlen_c_r(s + 1, acc + 1) : acc; - } - - template < typename CharT > - unsigned long constexpr - strlen_c(const CharT *const s) noexcept - { - return strlen_c_r(s, 0UL); - } - - static_assert(strlen_c("") == 0UL, ""); - static_assert(strlen_c("1") == 1UL, ""); - static_assert(strlen_c("example") == 7UL, ""); - static_assert(strlen_c("another\0example") == 7UL, ""); - - } - - namespace test_rvalue_references - { - - template < int N > - struct answer - { - static constexpr int value = N; - }; - - answer<1> f(int&) { return answer<1>(); } - answer<2> f(const int&) { return answer<2>(); } - answer<3> f(int&&) { return answer<3>(); } - - void - test() - { - int i = 0; - const int c = 0; - static_assert(decltype(f(i))::value == 1, ""); - static_assert(decltype(f(c))::value == 2, ""); - static_assert(decltype(f(0))::value == 3, ""); - } - - } - - namespace test_uniform_initialization - { - - struct test - { - static const int zero {}; - static const int one {1}; - }; - - static_assert(test::zero == 0, ""); - static_assert(test::one == 1, ""); - - } - - namespace test_lambdas - { - - void - test1() - { - auto lambda1 = [](){}; - auto lambda2 = lambda1; - lambda1(); - lambda2(); - } - - int - test2() - { - auto a = [](int i, int j){ return i + j; }(1, 2); - auto b = []() -> int { return '0'; }(); - auto c = [=](){ return a + b; }(); - auto d = [&](){ return c; }(); - auto e = [a, &b](int x) mutable { - const auto identity = [](int y){ return y; }; - for (auto i = 0; i < a; ++i) - a += b--; - return x + identity(a + b); - }(0); - return a + b + c + d + e; - } - - int - test3() - { - const auto nullary = [](){ return 0; }; - const auto unary = [](int x){ return x; }; - using nullary_t = decltype(nullary); - using unary_t = decltype(unary); - const auto higher1st = [](nullary_t f){ return f(); }; - const auto higher2nd = [unary](nullary_t f1){ - return [unary, f1](unary_t f2){ return f2(unary(f1())); }; - }; - return higher1st(nullary) + higher2nd(nullary)(unary); - } - - } - - namespace test_variadic_templates - { - - template - struct sum; - - template - struct sum - { - static constexpr auto value = N0 + sum::value; - }; - - template <> - struct sum<> - { - static constexpr auto value = 0; - }; - - static_assert(sum<>::value == 0, ""); - static_assert(sum<1>::value == 1, ""); - static_assert(sum<23>::value == 23, ""); - static_assert(sum<1, 2>::value == 3, ""); - static_assert(sum<5, 5, 11>::value == 21, ""); - static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); - - } - - // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae - // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function - // because of this. - namespace test_template_alias_sfinae - { - - struct foo {}; - - template - using member = typename T::member_type; - - template - void func(...) {} - - template - void func(member*) {} - - void test(); - - void test() { func(0); } - - } - -} // namespace cxx11 - -#endif // __cplusplus >= 201103L - -]]) - - -dnl Tests for new features in C++14 - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ - -// If the compiler admits that it is not ready for C++14, why torture it? -// Hopefully, this will speed up the test. - -#ifndef __cplusplus - -#error "This is not a C++ compiler" - -#elif __cplusplus < 201402L && !defined _MSC_VER - -#error "This is not a C++14 compiler" - -#else - -namespace cxx14 -{ - - namespace test_polymorphic_lambdas - { - - int - test() - { - const auto lambda = [](auto&&... args){ - const auto istiny = [](auto x){ - return (sizeof(x) == 1UL) ? 1 : 0; - }; - const int aretiny[] = { istiny(args)... }; - return aretiny[0]; - }; - return lambda(1, 1L, 1.0f, '1'); - } - - } - - namespace test_binary_literals - { - - constexpr auto ivii = 0b0000000000101010; - static_assert(ivii == 42, "wrong value"); - - } - - namespace test_generalized_constexpr - { - - template < typename CharT > - constexpr unsigned long - strlen_c(const CharT *const s) noexcept - { - auto length = 0UL; - for (auto p = s; *p; ++p) - ++length; - return length; - } - - static_assert(strlen_c("") == 0UL, ""); - static_assert(strlen_c("x") == 1UL, ""); - static_assert(strlen_c("test") == 4UL, ""); - static_assert(strlen_c("another\0test") == 7UL, ""); - - } - - namespace test_lambda_init_capture - { - - int - test() - { - auto x = 0; - const auto lambda1 = [a = x](int b){ return a + b; }; - const auto lambda2 = [a = lambda1(x)](){ return a; }; - return lambda2(); - } - - } - - namespace test_digit_separators - { - - constexpr auto ten_million = 100'000'000; - static_assert(ten_million == 100000000, ""); - - } - - namespace test_return_type_deduction - { - - auto f(int& x) { return x; } - decltype(auto) g(int& x) { return x; } - - template < typename T1, typename T2 > - struct is_same - { - static constexpr auto value = false; - }; - - template < typename T > - struct is_same - { - static constexpr auto value = true; - }; - - int - test() - { - auto x = 0; - static_assert(is_same::value, ""); - static_assert(is_same::value, ""); - return x; - } - - } - -} // namespace cxx14 - -#endif // __cplusplus >= 201402L - -]]) - - -dnl Tests for new features in C++17 - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[ - -// If the compiler admits that it is not ready for C++17, why torture it? -// Hopefully, this will speed up the test. - -#ifndef __cplusplus - -#error "This is not a C++ compiler" - -#elif __cplusplus < 201703L && !defined _MSC_VER - -#error "This is not a C++17 compiler" - -#else - -#include -#include -#include - -namespace cxx17 -{ - - namespace test_constexpr_lambdas - { - - constexpr int foo = [](){return 42;}(); - - } - - namespace test::nested_namespace::definitions - { - - } - - namespace test_fold_expression - { - - template - int multiply(Args... args) - { - return (args * ... * 1); - } - - template - bool all(Args... args) - { - return (args && ...); - } - - } - - namespace test_extended_static_assert - { - - static_assert (true); - - } - - namespace test_auto_brace_init_list - { - - auto foo = {5}; - auto bar {5}; - - static_assert(std::is_same, decltype(foo)>::value); - static_assert(std::is_same::value); - } - - namespace test_typename_in_template_template_parameter - { - - template typename X> struct D; - - } - - namespace test_fallthrough_nodiscard_maybe_unused_attributes - { - - int f1() - { - return 42; - } - - [[nodiscard]] int f2() - { - [[maybe_unused]] auto unused = f1(); - - switch (f1()) - { - case 17: - f1(); - [[fallthrough]]; - case 42: - f1(); - } - return f1(); - } - - } - - namespace test_extended_aggregate_initialization - { - - struct base1 - { - int b1, b2 = 42; - }; - - struct base2 - { - base2() { - b3 = 42; - } - int b3; - }; - - struct derived : base1, base2 - { - int d; - }; - - derived d1 {{1, 2}, {}, 4}; // full initialization - derived d2 {{}, {}, 4}; // value-initialized bases - - } - - namespace test_general_range_based_for_loop - { - - struct iter - { - int i; - - int& operator* () - { - return i; - } - - const int& operator* () const - { - return i; - } - - iter& operator++() - { - ++i; - return *this; - } - }; - - struct sentinel - { - int i; - }; - - bool operator== (const iter& i, const sentinel& s) - { - return i.i == s.i; - } - - bool operator!= (const iter& i, const sentinel& s) - { - return !(i == s); - } - - struct range - { - iter begin() const - { - return {0}; - } - - sentinel end() const - { - return {5}; - } - }; - - void f() - { - range r {}; - - for (auto i : r) - { - [[maybe_unused]] auto v = i; - } - } - - } - - namespace test_lambda_capture_asterisk_this_by_value - { - - struct t - { - int i; - int foo() - { - return [*this]() - { - return i; - }(); - } - }; - - } - - namespace test_enum_class_construction - { - - enum class byte : unsigned char - {}; - - byte foo {42}; - - } - - namespace test_constexpr_if - { - - template - int f () - { - if constexpr(cond) - { - return 13; - } - else - { - return 42; - } - } - - } - - namespace test_selection_statement_with_initializer - { - - int f() - { - return 13; - } - - int f2() - { - if (auto i = f(); i > 0) - { - return 3; - } - - switch (auto i = f(); i + 4) - { - case 17: - return 2; - - default: - return 1; - } - } - - } - - namespace test_template_argument_deduction_for_class_templates - { - - template - struct pair - { - pair (T1 p1, T2 p2) - : m1 {p1}, - m2 {p2} - {} - - T1 m1; - T2 m2; - }; - - void f() - { - [[maybe_unused]] auto p = pair{13, 42u}; - } - - } - - namespace test_non_type_auto_template_parameters - { - - template - struct B - {}; - - B<5> b1; - B<'a'> b2; - - } - - namespace test_structured_bindings - { - - int arr[2] = { 1, 2 }; - std::pair pr = { 1, 2 }; - - auto f1() -> int(&)[2] - { - return arr; - } - - auto f2() -> std::pair& - { - return pr; - } - - struct S - { - int x1 : 2; - volatile double y1; - }; - - S f3() - { - return {}; - } - - auto [ x1, y1 ] = f1(); - auto& [ xr1, yr1 ] = f1(); - auto [ x2, y2 ] = f2(); - auto& [ xr2, yr2 ] = f2(); - const auto [ x3, y3 ] = f3(); - - } - - namespace test_exception_spec_type_system - { - - struct Good {}; - struct Bad {}; - - void g1() noexcept; - void g2(); - - template - Bad - f(T*, T*); - - template - Good - f(T1*, T2*); - - static_assert (std::is_same_v); - - } - - namespace test_inline_variables - { - - template void f(T) - {} - - template inline T g(T) - { - return T{}; - } - - template<> inline void f<>(int) - {} - - template<> int g<>(int) - { - return 5; - } - - } - -} // namespace cxx17 - -#endif // __cplusplus < 201703L && !defined _MSC_VER - -]]) - - -dnl Tests for new features in C++20 - -m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_20], [[ - -#ifndef __cplusplus - -#error "This is not a C++ compiler" - -#elif __cplusplus < 202002L && !defined _MSC_VER - -#error "This is not a C++20 compiler" - -#else - -#include - -namespace cxx20 -{ - -// As C++20 supports feature test macros in the standard, there is no -// immediate need to actually test for feature availability on the -// Autoconf side. - -} // namespace cxx20 - -#endif // __cplusplus < 202002L && !defined _MSC_VER - -]]) diff --git a/build/ax_prog_doxygen.m4 b/build/ax_prog_doxygen.m4 deleted file mode 100644 index fd145991e6..0000000000 --- a/build/ax_prog_doxygen.m4 +++ /dev/null @@ -1,533 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_prog_doxygen.html -# =========================================================================== -# -# SYNOPSIS -# -# DX_INIT_DOXYGEN(PROJECT-NAME, DOXYFILE-PATH, [OUTPUT-DIR]) -# DX_DOXYGEN_FEATURE(ON|OFF) -# DX_DOT_FEATURE(ON|OFF) -# DX_HTML_FEATURE(ON|OFF) -# DX_CHM_FEATURE(ON|OFF) -# DX_CHI_FEATURE(ON|OFF) -# DX_MAN_FEATURE(ON|OFF) -# DX_RTF_FEATURE(ON|OFF) -# DX_XML_FEATURE(ON|OFF) -# DX_PDF_FEATURE(ON|OFF) -# DX_PS_FEATURE(ON|OFF) -# -# DESCRIPTION -# -# The DX_*_FEATURE macros control the default setting for the given -# Doxygen feature. Supported features are 'DOXYGEN' itself, 'DOT' for -# generating graphics, 'HTML' for plain HTML, 'CHM' for compressed HTML -# help (for MS users), 'CHI' for generating a seperate .chi file by the -# .chm file, and 'MAN', 'RTF', 'XML', 'PDF' and 'PS' for the appropriate -# output formats. The environment variable DOXYGEN_PAPER_SIZE may be -# specified to override the default 'a4wide' paper size. -# -# By default, HTML, PDF and PS documentation is generated as this seems to -# be the most popular and portable combination. MAN pages created by -# Doxygen are usually problematic, though by picking an appropriate subset -# and doing some massaging they might be better than nothing. CHM and RTF -# are specific for MS (note that you can't generate both HTML and CHM at -# the same time). The XML is rather useless unless you apply specialized -# post-processing to it. -# -# The macros mainly control the default state of the feature. The use can -# override the default by specifying --enable or --disable. The macros -# ensure that contradictory flags are not given (e.g., -# --enable-doxygen-html and --enable-doxygen-chm, -# --enable-doxygen-anything with --disable-doxygen, etc.) Finally, each -# feature will be automatically disabled (with a warning) if the required -# programs are missing. -# -# Once all the feature defaults have been specified, call DX_INIT_DOXYGEN -# with the following parameters: a one-word name for the project for use -# as a filename base etc., an optional configuration file name (the -# default is 'Doxyfile', the same as Doxygen's default), and an optional -# output directory name (the default is 'doxygen-doc'). -# -# Automake Support -# -# The following is a template aminclude.am file for use with Automake. -# Make targets and variables values are controlled by the various -# DX_COND_* conditionals set by autoconf. -# -# The provided targets are: -# -# doxygen-doc: Generate all doxygen documentation. -# -# doxygen-run: Run doxygen, which will generate some of the -# documentation (HTML, CHM, CHI, MAN, RTF, XML) -# but will not do the post processing required -# for the rest of it (PS, PDF, and some MAN). -# -# doxygen-man: Rename some doxygen generated man pages. -# -# doxygen-ps: Generate doxygen PostScript documentation. -# -# doxygen-pdf: Generate doxygen PDF documentation. -# -# Note that by default these are not integrated into the automake targets. -# If doxygen is used to generate man pages, you can achieve this -# integration by setting man3_MANS to the list of man pages generated and -# then adding the dependency: -# -# $(man3_MANS): doxygen-doc -# -# This will cause make to run doxygen and generate all the documentation. -# -# The following variable is intended for use in Makefile.am: -# -# DX_CLEANFILES = everything to clean. -# -# Then add this variable to MOSTLYCLEANFILES. -# -# ----- begin aminclude.am ------------------------------------- -# -# ## --------------------------------- ## -# ## Format-independent Doxygen rules. ## -# ## --------------------------------- ## -# -# if DX_COND_doc -# -# ## ------------------------------- ## -# ## Rules specific for HTML output. ## -# ## ------------------------------- ## -# -# if DX_COND_html -# -# DX_CLEAN_HTML = @DX_DOCDIR@/html -# -# endif DX_COND_html -# -# ## ------------------------------ ## -# ## Rules specific for CHM output. ## -# ## ------------------------------ ## -# -# if DX_COND_chm -# -# DX_CLEAN_CHM = @DX_DOCDIR@/chm -# -# if DX_COND_chi -# -# DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi -# -# endif DX_COND_chi -# -# endif DX_COND_chm -# -# ## ------------------------------ ## -# ## Rules specific for MAN output. ## -# ## ------------------------------ ## -# -# if DX_COND_man -# -# DX_CLEAN_MAN = @DX_DOCDIR@/man -# -# endif DX_COND_man -# -# ## ------------------------------ ## -# ## Rules specific for RTF output. ## -# ## ------------------------------ ## -# -# if DX_COND_rtf -# -# DX_CLEAN_RTF = @DX_DOCDIR@/rtf -# -# endif DX_COND_rtf -# -# ## ------------------------------ ## -# ## Rules specific for XML output. ## -# ## ------------------------------ ## -# -# if DX_COND_xml -# -# DX_CLEAN_XML = @DX_DOCDIR@/xml -# -# endif DX_COND_xml -# -# ## ----------------------------- ## -# ## Rules specific for PS output. ## -# ## ----------------------------- ## -# -# if DX_COND_ps -# -# DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps -# -# DX_PS_GOAL = doxygen-ps -# -# doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps -# -# @DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag -# cd @DX_DOCDIR@/latex; \ -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ -# $(DX_LATEX) refman.tex; \ -# $(MAKEINDEX_PATH) refman.idx; \ -# $(DX_LATEX) refman.tex; \ -# countdown=5; \ -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ -# refman.log > /dev/null 2>&1 \ -# && test $$countdown -gt 0; do \ -# $(DX_LATEX) refman.tex; \ -# countdown=`expr $$countdown - 1`; \ -# done; \ -# $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi -# -# endif DX_COND_ps -# -# ## ------------------------------ ## -# ## Rules specific for PDF output. ## -# ## ------------------------------ ## -# -# if DX_COND_pdf -# -# DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf -# -# DX_PDF_GOAL = doxygen-pdf -# -# doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf -# -# @DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag -# cd @DX_DOCDIR@/latex; \ -# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ -# $(DX_PDFLATEX) refman.tex; \ -# $(DX_MAKEINDEX) refman.idx; \ -# $(DX_PDFLATEX) refman.tex; \ -# countdown=5; \ -# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ -# refman.log > /dev/null 2>&1 \ -# && test $$countdown -gt 0; do \ -# $(DX_PDFLATEX) refman.tex; \ -# countdown=`expr $$countdown - 1`; \ -# done; \ -# mv refman.pdf ../@PACKAGE@.pdf -# -# endif DX_COND_pdf -# -# ## ------------------------------------------------- ## -# ## Rules specific for LaTeX (shared for PS and PDF). ## -# ## ------------------------------------------------- ## -# -# if DX_COND_latex -# -# DX_CLEAN_LATEX = @DX_DOCDIR@/latex -# -# endif DX_COND_latex -# -# .PHONY: doxygen-run doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) -# -# .INTERMEDIATE: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL) -# -# doxygen-run: @DX_DOCDIR@/@PACKAGE@.tag -# -# doxygen-doc: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL) -# -# @DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) -# rm -rf @DX_DOCDIR@ -# $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) -# echo Timestamp >$@ -# -# DX_CLEANFILES = \ -# @DX_DOCDIR@/@PACKAGE@.tag \ -# -r \ -# $(DX_CLEAN_HTML) \ -# $(DX_CLEAN_CHM) \ -# $(DX_CLEAN_CHI) \ -# $(DX_CLEAN_MAN) \ -# $(DX_CLEAN_RTF) \ -# $(DX_CLEAN_XML) \ -# $(DX_CLEAN_PS) \ -# $(DX_CLEAN_PDF) \ -# $(DX_CLEAN_LATEX) -# -# endif DX_COND_doc -# -# ----- end aminclude.am --------------------------------------- -# -# LICENSE -# -# Copyright (c) 2009 Oren Ben-Kiki -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 13 - -## ----------## -## Defaults. ## -## ----------## - -DX_ENV="" -AC_DEFUN([DX_FEATURE_doc], ON) -AC_DEFUN([DX_FEATURE_dot], OFF) -AC_DEFUN([DX_FEATURE_man], OFF) -AC_DEFUN([DX_FEATURE_html], ON) -AC_DEFUN([DX_FEATURE_chm], OFF) -AC_DEFUN([DX_FEATURE_chi], OFF) -AC_DEFUN([DX_FEATURE_rtf], OFF) -AC_DEFUN([DX_FEATURE_xml], OFF) -AC_DEFUN([DX_FEATURE_pdf], ON) -AC_DEFUN([DX_FEATURE_ps], ON) - -## --------------- ## -## Private macros. ## -## --------------- ## - -# DX_ENV_APPEND(VARIABLE, VALUE) -# ------------------------------ -# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen. -AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])]) - -# DX_DIRNAME_EXPR -# --------------- -# Expand into a shell expression prints the directory part of a path. -AC_DEFUN([DX_DIRNAME_EXPR], - [[expr ".$1" : '\(\.\)[^/]*$' \| "x$1" : 'x\(.*\)/[^/]*$']]) - -# DX_IF_FEATURE(FEATURE, IF-ON, IF-OFF) -# ------------------------------------- -# Expands according to the M4 (static) status of the feature. -AC_DEFUN([DX_IF_FEATURE], [ifelse(DX_FEATURE_$1, ON, [$2], [$3])]) - -# DX_REQUIRE_PROG(VARIABLE, PROGRAM) -# ---------------------------------- -# Require the specified program to be found for the DX_CURRENT_FEATURE to work. -AC_DEFUN([DX_REQUIRE_PROG], [ -AC_PATH_TOOL([$1], [$2]) -if test "$DX_FLAG_[]DX_CURRENT_FEATURE$$1" = 1; then - AC_MSG_WARN([$2 not found - will not DX_CURRENT_DESCRIPTION]) - AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0) -fi -]) - -# DX_TEST_FEATURE(FEATURE) -# ------------------------ -# Expand to a shell expression testing whether the feature is active. -AC_DEFUN([DX_TEST_FEATURE], [test "$DX_FLAG_$1" = 1]) - -# DX_CHECK_DEPEND(REQUIRED_FEATURE, REQUIRED_STATE) -# ------------------------------------------------- -# Verify that a required features has the right state before trying to turn on -# the DX_CURRENT_FEATURE. -AC_DEFUN([DX_CHECK_DEPEND], [ -test "$DX_FLAG_$1" = "$2" \ -|| AC_MSG_ERROR([doxygen-DX_CURRENT_FEATURE ifelse([$2], 1, - requires, contradicts) doxygen-DX_CURRENT_FEATURE]) -]) - -# DX_CLEAR_DEPEND(FEATURE, REQUIRED_FEATURE, REQUIRED_STATE) -# ---------------------------------------------------------- -# Turn off the DX_CURRENT_FEATURE if the required feature is off. -AC_DEFUN([DX_CLEAR_DEPEND], [ -test "$DX_FLAG_$1" = "$2" || AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0) -]) - -# DX_FEATURE_ARG(FEATURE, DESCRIPTION, -# CHECK_DEPEND, CLEAR_DEPEND, -# REQUIRE, DO-IF-ON, DO-IF-OFF) -# -------------------------------------------- -# Parse the command-line option controlling a feature. CHECK_DEPEND is called -# if the user explicitly turns the feature on (and invokes DX_CHECK_DEPEND), -# otherwise CLEAR_DEPEND is called to turn off the default state if a required -# feature is disabled (using DX_CLEAR_DEPEND). REQUIRE performs additional -# requirement tests (DX_REQUIRE_PROG). Finally, an automake flag is set and -# DO-IF-ON or DO-IF-OFF are called according to the final state of the feature. -AC_DEFUN([DX_ARG_ABLE], [ - AC_DEFUN([DX_CURRENT_FEATURE], [$1]) - AC_DEFUN([DX_CURRENT_DESCRIPTION], [$2]) - AC_ARG_ENABLE(doxygen-$1, - [AS_HELP_STRING(DX_IF_FEATURE([$1], [--disable-doxygen-$1], - [--enable-doxygen-$1]), - DX_IF_FEATURE([$1], [don't $2], [$2]))], - [ -case "$enableval" in -#( -y|Y|yes|Yes|YES) - AC_SUBST([DX_FLAG_$1], 1) - $3 -;; #( -n|N|no|No|NO) - AC_SUBST([DX_FLAG_$1], 0) -;; #( -*) - AC_MSG_ERROR([invalid value '$enableval' given to doxygen-$1]) -;; -esac -], [ -AC_SUBST([DX_FLAG_$1], [DX_IF_FEATURE([$1], 1, 0)]) -$4 -]) -if DX_TEST_FEATURE([$1]); then - $5 - : -fi -AM_CONDITIONAL(DX_COND_$1, DX_TEST_FEATURE([$1])) -if DX_TEST_FEATURE([$1]); then - $6 - : -else - $7 - : -fi -]) - -## -------------- ## -## Public macros. ## -## -------------- ## - -# DX_XXX_FEATURE(DEFAULT_STATE) -# ----------------------------- -AC_DEFUN([DX_DOXYGEN_FEATURE], [AC_DEFUN([DX_FEATURE_doc], [$1])]) -AC_DEFUN([DX_DOT_FEATURE], [AC_DEFUN([DX_FEATURE_dot], [$1])]) -AC_DEFUN([DX_MAN_FEATURE], [AC_DEFUN([DX_FEATURE_man], [$1])]) -AC_DEFUN([DX_HTML_FEATURE], [AC_DEFUN([DX_FEATURE_html], [$1])]) -AC_DEFUN([DX_CHM_FEATURE], [AC_DEFUN([DX_FEATURE_chm], [$1])]) -AC_DEFUN([DX_CHI_FEATURE], [AC_DEFUN([DX_FEATURE_chi], [$1])]) -AC_DEFUN([DX_RTF_FEATURE], [AC_DEFUN([DX_FEATURE_rtf], [$1])]) -AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) -AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) -AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])]) -AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])]) - -# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR]) -# --------------------------------------------------------- -# PROJECT also serves as the base name for the documentation files. -# The default CONFIG-FILE is "Doxyfile" and OUTPUT-DOC-DIR is "doxygen-doc". -AC_DEFUN([DX_INIT_DOXYGEN], [ - -# Files: -AC_SUBST([DX_PROJECT], [$1]) -AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])]) -AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])]) - -# Environment variables used inside doxygen.cfg: -DX_ENV_APPEND(SRCDIR, $srcdir) -DX_ENV_APPEND(PROJECT, $DX_PROJECT) -DX_ENV_APPEND(DOCDIR, $DX_DOCDIR) -DX_ENV_APPEND(VERSION, $PACKAGE_VERSION) - -# Doxygen itself: -DX_ARG_ABLE(doc, [generate any doxygen documentation], - [], - [], - [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen) - DX_REQUIRE_PROG([DX_PERL], perl)], - [DX_ENV_APPEND(PERL_PATH, $DX_PERL)]) - -# Dot for graphics: -DX_ARG_ABLE(dot, [generate graphics for doxygen documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [DX_REQUIRE_PROG([DX_DOT], dot)], - [DX_ENV_APPEND(HAVE_DOT, YES) - DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])], - [DX_ENV_APPEND(HAVE_DOT, NO)]) - -# Man pages generation: -DX_ARG_ABLE(man, [generate doxygen manual pages], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [], - [DX_ENV_APPEND(GENERATE_MAN, YES)], - [DX_ENV_APPEND(GENERATE_MAN, NO)]) - -# RTF file generation: -DX_ARG_ABLE(rtf, [generate doxygen RTF documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [], - [DX_ENV_APPEND(GENERATE_RTF, YES)], - [DX_ENV_APPEND(GENERATE_RTF, NO)]) - -# XML file generation: -DX_ARG_ABLE(xml, [generate doxygen XML documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [], - [DX_ENV_APPEND(GENERATE_XML, YES)], - [DX_ENV_APPEND(GENERATE_XML, NO)]) - -# (Compressed) HTML help generation: -DX_ARG_ABLE(chm, [generate doxygen compressed HTML help documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [DX_REQUIRE_PROG([DX_HHC], hhc)], - [DX_ENV_APPEND(HHC_PATH, $DX_HHC) - DX_ENV_APPEND(GENERATE_HTML, YES) - DX_ENV_APPEND(GENERATE_HTMLHELP, YES)], - [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)]) - -# Seperate CHI file generation. -DX_ARG_ABLE(chi, [generate doxygen seperate compressed HTML help index file], - [DX_CHECK_DEPEND(chm, 1)], - [DX_CLEAR_DEPEND(chm, 1)], - [], - [DX_ENV_APPEND(GENERATE_CHI, YES)], - [DX_ENV_APPEND(GENERATE_CHI, NO)]) - -# Plain HTML pages generation: -DX_ARG_ABLE(html, [generate doxygen plain HTML documentation], - [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)], - [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)], - [], - [DX_ENV_APPEND(GENERATE_HTML, YES)], - [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)]) - -# PostScript file generation: -DX_ARG_ABLE(ps, [generate doxygen PostScript documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [DX_REQUIRE_PROG([DX_LATEX], latex) - DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) - DX_REQUIRE_PROG([DX_DVIPS], dvips) - DX_REQUIRE_PROG([DX_EGREP], egrep)]) - -# PDF file generation: -DX_ARG_ABLE(pdf, [generate doxygen PDF documentation], - [DX_CHECK_DEPEND(doc, 1)], - [DX_CLEAR_DEPEND(doc, 1)], - [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex) - DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) - DX_REQUIRE_PROG([DX_EGREP], egrep)]) - -# LaTeX generation for PS and/or PDF: -AM_CONDITIONAL(DX_COND_latex, DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf)) -if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then - DX_ENV_APPEND(GENERATE_LATEX, YES) -else - DX_ENV_APPEND(GENERATE_LATEX, NO) -fi - -# Paper size for PS and/or PDF: -AC_ARG_VAR(DOXYGEN_PAPER_SIZE, - [a4wide (default), a4, letter, legal or executive]) -case "$DOXYGEN_PAPER_SIZE" in -#( -"") - AC_SUBST(DOXYGEN_PAPER_SIZE, "") -;; #( -a4wide|a4|letter|legal|executive) - DX_ENV_APPEND(PAPER_SIZE, $DOXYGEN_PAPER_SIZE) -;; #( -*) - AC_MSG_ERROR([unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE']) -;; -esac - -#For debugging: -#echo DX_FLAG_doc=$DX_FLAG_doc -#echo DX_FLAG_dot=$DX_FLAG_dot -#echo DX_FLAG_man=$DX_FLAG_man -#echo DX_FLAG_html=$DX_FLAG_html -#echo DX_FLAG_chm=$DX_FLAG_chm -#echo DX_FLAG_chi=$DX_FLAG_chi -#echo DX_FLAG_rtf=$DX_FLAG_rtf -#echo DX_FLAG_xml=$DX_FLAG_xml -#echo DX_FLAG_pdf=$DX_FLAG_pdf -#echo DX_FLAG_ps=$DX_FLAG_ps -#echo DX_ENV=$DX_ENV -]) diff --git a/build/ax_valgrind_check.m4 b/build/ax_valgrind_check.m4 deleted file mode 100644 index cb3890ec58..0000000000 --- a/build/ax_valgrind_check.m4 +++ /dev/null @@ -1,236 +0,0 @@ -# =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html -# =========================================================================== -# -# SYNOPSIS -# -# AX_VALGRIND_DFLT(memcheck|helgrind|drd|sgcheck, on|off) -# AX_VALGRIND_CHECK() -# -# DESCRIPTION -# -# AX_VALGRIND_CHECK checks whether Valgrind is present and, if so, allows -# running `make check` under a variety of Valgrind tools to check for -# memory and threading errors. -# -# Defines VALGRIND_CHECK_RULES which should be substituted in your -# Makefile; and $enable_valgrind which can be used in subsequent configure -# output. VALGRIND_ENABLED is defined and substituted, and corresponds to -# the value of the --enable-valgrind option, which defaults to being -# enabled if Valgrind is installed and disabled otherwise. Individual -# Valgrind tools can be disabled via --disable-valgrind-, the -# default is configurable via the AX_VALGRIND_DFLT command or is to use -# all commands not disabled via AX_VALGRIND_DFLT. All AX_VALGRIND_DFLT -# calls must be made before the call to AX_VALGRIND_CHECK. -# -# If unit tests are written using a shell script and automake's -# LOG_COMPILER system, the $(VALGRIND) variable can be used within the -# shell scripts to enable Valgrind, as described here: -# -# https://www.gnu.org/software/gnulib/manual/html_node/Running-self_002dtests-under-valgrind.html -# -# Usage example: -# -# configure.ac: -# -# AX_VALGRIND_DFLT([sgcheck], [off]) -# AX_VALGRIND_CHECK -# -# Makefile.am: -# -# @VALGRIND_CHECK_RULES@ -# VALGRIND_SUPPRESSIONS_FILES = my-project.supp -# EXTRA_DIST = my-project.supp -# -# This results in a "check-valgrind" rule being added to any Makefile.am -# which includes "@VALGRIND_CHECK_RULES@" (assuming the module has been -# configured with --enable-valgrind). Running `make check-valgrind` in -# that directory will run the module's test suite (`make check`) once for -# each of the available Valgrind tools (out of memcheck, helgrind and drd) -# while the sgcheck will be skipped unless enabled again on the -# commandline with --enable-valgrind-sgcheck. The results for each check -# will be output to test-suite-$toolname.log. The target will succeed if -# there are zero errors and fail otherwise. -# -# Alternatively, a "check-valgrind-$TOOL" rule will be added, for $TOOL in -# memcheck, helgrind, drd and sgcheck. These are useful because often only -# some of those tools can be ran cleanly on a codebase. -# -# The macro supports running with and without libtool. -# -# LICENSE -# -# Copyright (c) 2014, 2015, 2016 Philip Withnall -# -# Copying and distribution of this file, with or without modification, are -# permitted in any medium without royalty provided the copyright notice -# and this notice are preserved. This file is offered as-is, without any -# warranty. - -#serial 13 - -dnl Configured tools -m4_define([valgrind_tool_list], [[memcheck], [helgrind], [drd], [sgcheck]]) -m4_set_add_all([valgrind_exp_tool_set], [sgcheck]) -m4_foreach([vgtool], [valgrind_tool_list], - [m4_define([en_dflt_valgrind_]vgtool, [on])]) - -AC_DEFUN([AX_VALGRIND_DFLT],[ - m4_define([en_dflt_valgrind_$1], [$2]) -])dnl - -AC_DEFUN([AX_VALGRIND_CHECK],[ - dnl Check for --enable-valgrind - AC_ARG_ENABLE([valgrind], - [AS_HELP_STRING([--enable-valgrind], [Whether to enable Valgrind on the unit tests])], - [enable_valgrind=$enableval],[enable_valgrind=]) - - AS_IF([test "$enable_valgrind" != "no"],[ - # Check for Valgrind. - AC_CHECK_PROG([VALGRIND],[valgrind],[valgrind]) - AS_IF([test "$VALGRIND" = ""],[ - AS_IF([test "$enable_valgrind" = "yes"],[ - AC_MSG_ERROR([Could not find valgrind; either install it or reconfigure with --disable-valgrind]) - ],[ - enable_valgrind=no - ]) - ],[ - enable_valgrind=yes - ]) - ]) - - AM_CONDITIONAL([VALGRIND_ENABLED],[test "$enable_valgrind" = "yes"]) - AC_SUBST([VALGRIND_ENABLED],[$enable_valgrind]) - - # Check for Valgrind tools we care about. - [valgrind_enabled_tools=] - m4_foreach([vgtool],[valgrind_tool_list],[ - AC_ARG_ENABLE([valgrind-]vgtool, - m4_if(m4_defn([en_dflt_valgrind_]vgtool),[off],dnl -[AS_HELP_STRING([--enable-valgrind-]vgtool, [Whether to use ]vgtool[ during the Valgrind tests])],dnl -[AS_HELP_STRING([--disable-valgrind-]vgtool, [Whether to skip ]vgtool[ during the Valgrind tests])]), - [enable_valgrind_]vgtool[=$enableval], - [enable_valgrind_]vgtool[=]) - AS_IF([test "$enable_valgrind" = "no"],[ - enable_valgrind_]vgtool[=no], - [test "$enable_valgrind_]vgtool[" ]dnl -m4_if(m4_defn([en_dflt_valgrind_]vgtool), [off], [= "yes"], [!= "no"]),[ - AC_CACHE_CHECK([for Valgrind tool ]vgtool, - [ax_cv_valgrind_tool_]vgtool,[ - ax_cv_valgrind_tool_]vgtool[=no - m4_set_contains([valgrind_exp_tool_set],vgtool, - [m4_define([vgtoolx],[exp-]vgtool)], - [m4_define([vgtoolx],vgtool)]) - AS_IF([`$VALGRIND --tool=]vgtoolx[ --help >/dev/null 2>&1`],[ - ax_cv_valgrind_tool_]vgtool[=yes - ]) - ]) - AS_IF([test "$ax_cv_valgrind_tool_]vgtool[" = "no"],[ - AS_IF([test "$enable_valgrind_]vgtool[" = "yes"],[ - AC_MSG_ERROR([Valgrind does not support ]vgtool[; reconfigure with --disable-valgrind-]vgtool) - ],[ - enable_valgrind_]vgtool[=no - ]) - ],[ - enable_valgrind_]vgtool[=yes - ]) - ]) - AS_IF([test "$enable_valgrind_]vgtool[" = "yes"],[ - valgrind_enabled_tools="$valgrind_enabled_tools ]m4_bpatsubst(vgtool,[^exp-])[" - ]) - AC_SUBST([ENABLE_VALGRIND_]vgtool,[$enable_valgrind_]vgtool) - ]) - AC_SUBST([valgrind_tools],["]m4_join([ ], valgrind_tool_list)["]) - AC_SUBST([valgrind_enabled_tools],[$valgrind_enabled_tools]) - -[VALGRIND_CHECK_RULES=' -# Valgrind check -# -# Optional: -# - VALGRIND_SUPPRESSIONS_FILES: Space-separated list of Valgrind suppressions -# files to load. (Default: empty) -# - VALGRIND_FLAGS: General flags to pass to all Valgrind tools. -# (Default: --num-callers=30) -# - VALGRIND_$toolname_FLAGS: Flags to pass to Valgrind $toolname (one of: -# memcheck, helgrind, drd, sgcheck). (Default: various) - -# Optional variables -VALGRIND_SUPPRESSIONS ?= $(addprefix --suppressions=,$(VALGRIND_SUPPRESSIONS_FILES)) -VALGRIND_FLAGS ?= --num-callers=30 -VALGRIND_memcheck_FLAGS ?= --leak-check=full --show-reachable=no -VALGRIND_helgrind_FLAGS ?= --history-level=approx -VALGRIND_drd_FLAGS ?= -VALGRIND_sgcheck_FLAGS ?= - -# Internal use -valgrind_log_files = $(addprefix test-suite-,$(addsuffix .log,$(valgrind_tools))) - -valgrind_memcheck_flags = --tool=memcheck $(VALGRIND_memcheck_FLAGS) -valgrind_helgrind_flags = --tool=helgrind $(VALGRIND_helgrind_FLAGS) -valgrind_drd_flags = --tool=drd $(VALGRIND_drd_FLAGS) -valgrind_sgcheck_flags = --tool=exp-sgcheck $(VALGRIND_sgcheck_FLAGS) - -valgrind_quiet = $(valgrind_quiet_$(V)) -valgrind_quiet_ = $(valgrind_quiet_$(AM_DEFAULT_VERBOSITY)) -valgrind_quiet_0 = --quiet -valgrind_v_use = $(valgrind_v_use_$(V)) -valgrind_v_use_ = $(valgrind_v_use_$(AM_DEFAULT_VERBOSITY)) -valgrind_v_use_0 = @echo " USE " $(patsubst check-valgrind-%,%,$''@):; - -# Support running with and without libtool. -ifneq ($(LIBTOOL),) -valgrind_lt = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=execute -else -valgrind_lt = -endif - -# Use recursive makes in order to ignore errors during check -check-valgrind: -ifeq ($(VALGRIND_ENABLED),yes) - -$(A''M_V_at)$(foreach tool,$(valgrind_enabled_tools), \ - $(MAKE) $(AM_MAKEFLAGS) -k check-valgrind-$(tool); \ - ) -else - @echo "Need to reconfigure with --enable-valgrind" -endif - -# Valgrind running -VALGRIND_TESTS_ENVIRONMENT = \ - $(TESTS_ENVIRONMENT) \ - env VALGRIND=$(VALGRIND) \ - G_SLICE=always-malloc,debug-blocks \ - G_DEBUG=fatal-warnings,fatal-criticals,gc-friendly - -VALGRIND_LOG_COMPILER = test/test-suite.sh $(VALGRIND_SUPPRESSIONS) $(VALGRIND_FLAGS) -# $(valgrind_lt) \ -# $(VALGRIND) $(VALGRIND_SUPPRESSIONS) --error-exitcode=1 $(VALGRIND_FLAGS) - -define valgrind_tool_rule = -check-valgrind-$(1): -ifeq ($$(VALGRIND_ENABLED)-$$(ENABLE_VALGRIND_$(1)),yes-yes) - $$(valgrind_v_use)$$(MAKE) check-TESTS \ - TESTS_ENVIRONMENT="$$(VALGRIND_TESTS_ENVIRONMENT)" \ - LOG_COMPILER="$$(VALGRIND_LOG_COMPILER)" \ - LOG_FLAGS="$$(valgrind_$(1)_flags)" \ - TEST_SUITE_LOG=test-suite-$(1).log -else ifeq ($$(VALGRIND_ENABLED),yes) - @echo "Need to reconfigure with --enable-valgrind-$(1)" -else - @echo "Need to reconfigure with --enable-valgrind" -endif -endef - -$(foreach tool,$(valgrind_tools),$(eval $(call valgrind_tool_rule,$(tool)))) - -A''M_DISTCHECK_CONFIGURE_FLAGS ?= -A''M_DISTCHECK_CONFIGURE_FLAGS += --disable-valgrind - -MOSTLYCLEANFILES ?= -MOSTLYCLEANFILES += $(valgrind_log_files) - -.PHONY: check-valgrind $(add-prefix check-valgrind-,$(valgrind_tools)) -'] - - AC_SUBST([VALGRIND_CHECK_RULES]) - m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([VALGRIND_CHECK_RULES])]) -]) diff --git a/build/curl.m4 b/build/curl.m4 deleted file mode 100644 index f5e1bff5c6..0000000000 --- a/build/curl.m4 +++ /dev/null @@ -1,36 +0,0 @@ -dnl Check for CURL Libraries -dnl Sets: -dnl CURL_CFLAGS -dnl CURL_LDADD -dnl CURL_LDFLAGS -dnl CURL_VERSION -dnl CURL_DISPLAY -dnl CURL_FOUND - -AC_DEFUN([CHECK_CURL], [ -MSC_CHECK_LIB([CURL], [libcurl], [curl/curl.h], [curl], [-DWITH_CURL], [7.15.1]) - -# Post-processing: TLSv1.2 version check -if test "x${CURL_FOUND}" = "x1" && test -n "${CURL_VERSION}"; then - AC_MSG_CHECKING([if libcurl supports TLSv1.2]) - _msc_curl_tlsv2_ver=`echo 7.34.0 | awk -F. '{print (\$ 1 * 1000000) + (\$ 2 * 1000) + \$ 3}'` - _msc_curl_ver=`echo ${CURL_VERSION} | awk -F. '{print (\$ 1 * 1000000) + (\$ 2 * 1000) + \$ 3}'` - if test "${_msc_curl_tlsv2_ver}" -le "${_msc_curl_ver}" 2>/dev/null; then - AC_MSG_RESULT([yes]) - CURL_CFLAGS="${CURL_CFLAGS} -DWITH_CURL_SSLVERSION_TLSv1_2" - else - AC_MSG_RESULT([no]) - fi - - # Check/warn if GnuTLS is used - AC_MSG_CHECKING([if libcurl is linked with gnutls]) - _msc_curl_uses_gnutls=`echo ${CURL_LDADD} | grep gnutls | wc -l` - if test "$_msc_curl_uses_gnutls" -ne 0; then - AC_MSG_RESULT([yes]) - AC_MSG_NOTICE([NOTE: curl linked with gnutls may be buggy, openssl recommended]) - else - AC_MSG_RESULT([no]) - fi -fi - -]) # AC_DEFUN [CHECK_CURL] diff --git a/build/libgeoip.m4 b/build/libgeoip.m4 deleted file mode 100644 index 3aa74b3b9c..0000000000 --- a/build/libgeoip.m4 +++ /dev/null @@ -1,12 +0,0 @@ -dnl Check for GeoIP Libraries -dnl Sets: -dnl GEOIP_CFLAGS -dnl GEOIP_LDADD -dnl GEOIP_LDFLAGS -dnl GEOIP_VERSION -dnl GEOIP_DISPLAY -dnl GEOIP_FOUND - -AC_DEFUN([PROG_GEOIP], [ -MSC_CHECK_LIB([GEOIP], [geoip2 geoip GeoIP], [GeoIPCity.h], [GeoIP], [-DWITH_GEOIP]) -]) # AC_DEFUN [PROG_GEOIP] diff --git a/build/libmaxmind.m4 b/build/libmaxmind.m4 deleted file mode 100644 index 074227daa2..0000000000 --- a/build/libmaxmind.m4 +++ /dev/null @@ -1,12 +0,0 @@ -dnl Check for MaxMind Libraries -dnl Sets: -dnl MAXMIND_CFLAGS -dnl MAXMIND_LDADD -dnl MAXMIND_LDFLAGS -dnl MAXMIND_VERSION -dnl MAXMIND_DISPLAY -dnl MAXMIND_FOUND - -AC_DEFUN([PROG_MAXMIND], [ -MSC_CHECK_LIB([MAXMIND], [libmaxminddb], [maxminddb.h], [maxminddb], [-DWITH_MAXMIND]) -]) # AC_DEFUN [PROG_MAXMIND] diff --git a/build/libxml.m4 b/build/libxml.m4 deleted file mode 100644 index 035b639d6f..0000000000 --- a/build/libxml.m4 +++ /dev/null @@ -1,12 +0,0 @@ -dnl Check for LIBXML2 Libraries -dnl Sets: -dnl LIBXML2_CFLAGS -dnl LIBXML2_LDADD -dnl LIBXML2_LDFLAGS -dnl LIBXML2_VERSION -dnl LIBXML2_DISPLAY -dnl LIBXML2_FOUND - -AC_DEFUN([CHECK_LIBXML2], [ -MSC_CHECK_LIB([LIBXML2], [libxml-2.0], [libxml/parser.h], [xml2], [-DWITH_LIBXML2], [2.6.29], [libxml]) -]) # AC_DEFUN [CHECK_LIBXML2] diff --git a/build/lmdb.m4 b/build/lmdb.m4 deleted file mode 100644 index 3b834074a1..0000000000 --- a/build/lmdb.m4 +++ /dev/null @@ -1,29 +0,0 @@ -dnl Check for LMDB Libraries -dnl LMDB is disabled by default; only enabled when --with-lmdb is given. -dnl Sets: -dnl LMDB_CFLAGS -dnl LMDB_LDADD -dnl LMDB_LDFLAGS -dnl LMDB_VERSION -dnl LMDB_DISPLAY -dnl LMDB_FOUND - -AC_DEFUN([PROG_LMDB], [ - -# LMDB is opt-in: auto-detect finds it but we only activate when -# --with-lmdb or --with-lmdb=PATH is given explicitly. -MSC_CHECK_LIB([LMDB], [lmdb], [lmdb.h], [lmdb], [-DWITH_LMDB]) - -# If LMDB was found by auto-detection (no explicit --with-lmdb) treat it -# as disabled since LMDB is opt-in. -_msc_lmdb_with_val="$with_lmdb" -if test "x${_msc_lmdb_with_val}" = "x" && test "x${LMDB_FOUND}" = "x1"; then - LMDB_FOUND=2 - LMDB_CFLAGS="" - LMDB_LDADD="" - LMDB_LDFLAGS="" - LMDB_DISPLAY="" - AC_MSG_NOTICE([LMDB is disabled by default. Use --with-lmdb to enable.]) -fi - -]) # AC_DEFUN [PROG_LMDB] diff --git a/build/lua.m4 b/build/lua.m4 deleted file mode 100644 index 608c10842e..0000000000 --- a/build/lua.m4 +++ /dev/null @@ -1,98 +0,0 @@ -dnl Check for LUA Libraries -dnl Sets: -dnl LUA_CFLAGS -dnl LUA_LDADD -dnl LUA_LDFLAGS -dnl LUA_DISPLAY -dnl LUA_FOUND - -AC_DEFUN([CHECK_LUA], [ -MSC_CHECK_LIB([LUA], [lua55 lua5.5 lua-5.5 lua54 lua5.4 lua-5.4 lua53 lua5.3 lua-5.3 lua52 lua5.2 lua-5.2 lua51 lua5.1 lua-5.1 luajit lua], [lua.h], [lua5.5 lua5.4 lua5.3 lua5.2 lua5.1 luajit-5.1 lua], [-DWITH_LUA]) - -# Post-processing: detect Lua version and add version-specific defines -if test "x${LUA_FOUND}" = "x1"; then - - # Use version already detected by MSC_CHECK_LIB (from pkg-config) if available - if test -n "${LUA_VERSION}" && test "x${LUA_VERSION}" != "xunknown"; then - case ${LUA_VERSION} in - 5.1*) LUA_CFLAGS="-DWITH_LUA_5_1 ${LUA_CFLAGS}" ;; - 5.2*) LUA_CFLAGS="-DWITH_LUA_5_2 ${LUA_CFLAGS}" ;; - 5.3*) LUA_CFLAGS="-DWITH_LUA_5_3 ${LUA_CFLAGS}" ;; - 5.4*) LUA_CFLAGS="-DWITH_LUA_5_4 ${LUA_CFLAGS}" ;; - 5.5*) LUA_CFLAGS="-DWITH_LUA_5_5 ${LUA_CFLAGS}" ;; - 2.0*) LUA_CFLAGS="-DWITH_LUA_5_1 ${LUA_CFLAGS}" ;; - 2.1*) LUA_CFLAGS="-DWITH_LUA_5_1 -DWITH_LUA_JIT_2_1 ${LUA_CFLAGS}" ;; - esac - AC_MSG_NOTICE([LUA version: ${LUA_VERSION}]) - fi - - # If no version detected yet, try compile tests - if test -z "${LUA_VERSION}" || test "x${LUA_VERSION}" = "xunknown"; then - LUA_VERSION="" - _msc_save_CFLAGS=$CFLAGS - CFLAGS="${LUA_CFLAGS} ${CFLAGS}" - - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]], - [[ #if (LUA_VERSION_NUM == 505) - return 0; - #else - #error not 5.5 - #endif ]])], - [ _msc_lua_ver=505 ], [ _msc_lua_ver="" ]) - - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]], - [[ #if (LUA_VERSION_NUM == 504) - return 0; - #else - #error not 5.4 - #endif ]])], - [ _msc_lua_ver=504 ], [ _msc_lua_ver="" ]) - - if test -z "$_msc_lua_ver"; then - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]], - [[ #if (LUA_VERSION_NUM == 503) - return 0; - #else - #error not 5.3 - #endif ]])], - [ _msc_lua_ver=503 ], [ _msc_lua_ver="" ]) - fi - - if test -z "$_msc_lua_ver"; then - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]], - [[ #if (LUA_VERSION_NUM == 502) - return 0; - #else - #error not 5.2 - #endif ]])], - [ _msc_lua_ver=502 ], [ _msc_lua_ver="" ]) - fi - - if test -z "$_msc_lua_ver"; then - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]], - [[ #if (LUA_VERSION_NUM == 501) - return 0; - #else - #error not 5.1 - #endif ]])], - [ _msc_lua_ver=501 ], [ _msc_lua_ver="" ]) - fi - - CFLAGS=$_msc_save_CFLAGS - - case $_msc_lua_ver in - 501) LUA_CFLAGS="-DWITH_LUA_5_1 ${LUA_CFLAGS}" ;; - 502) LUA_CFLAGS="-DWITH_LUA_5_2 ${LUA_CFLAGS}" ;; - 503) LUA_CFLAGS="-DWITH_LUA_5_3 ${LUA_CFLAGS}" ;; - 504) LUA_CFLAGS="-DWITH_LUA_5_4 ${LUA_CFLAGS}" ;; - 505) LUA_CFLAGS="-DWITH_LUA_5_5 ${LUA_CFLAGS}" ;; - esac - if test -n "$_msc_lua_ver"; then - AC_MSG_NOTICE([LUA version from compile test: $_msc_lua_ver]) - fi - fi - - LUA_DISPLAY="${LUA_LDADD} ${LUA_LDFLAGS}, ${LUA_CFLAGS}" -fi - -]) # AC_DEFUN [CHECK_LUA] diff --git a/build/msc_find_lib.m4 b/build/msc_find_lib.m4 deleted file mode 100644 index dc800a9839..0000000000 --- a/build/msc_find_lib.m4 +++ /dev/null @@ -1,266 +0,0 @@ -dnl MSC_CHECK_LIB: Generic library detection macro -dnl -dnl MSC_CHECK_LIB(NAME, PKG_NAMES, HEADER, LIB_NAMES, EXTRA_CFLAGS, -dnl [MIN_VERSION], [WITH_NAME]) -dnl -dnl Detects a library via pkg-config first, then falls back to manual -dnl file-system scanning. Preserves the --with-LIB=PATH|yes|no interface. -dnl -dnl Sets and AC_SUBSTs: -dnl ${NAME}_CFLAGS, ${NAME}_LDADD, ${NAME}_LDFLAGS, -dnl ${NAME}_VERSION, ${NAME}_DISPLAY, ${NAME}_FOUND (0/1/2) -dnl -dnl NAME - Variable prefix (e.g., CURL, LIBXML2, LMDB) -dnl PKG_NAMES - Space-separated pkg-config names to try -dnl HEADER - Header file to look for (e.g., libxml/parser.h) -dnl LIB_NAMES - Space-separated library names for -l flags -dnl EXTRA_CFLAGS - Additional CFLAGS when found (e.g., -DWITH_LIBXML2) -dnl MIN_VERSION - Optional minimum version for pkg-config check -dnl WITH_NAME - Optional --with-X name if different from lowercased NAME - -AC_DEFUN([MSC_CHECK_LIB], [ -m4_pushdef([_MSC_NAME], [$1])dnl -m4_pushdef([_MSC_PKG_NAMES], [$2])dnl -m4_pushdef([_MSC_HEADER], [$3])dnl -m4_pushdef([_MSC_LIB_NAMES], [$4])dnl -m4_pushdef([_MSC_EXTRA_CFLAGS], [$5])dnl -m4_pushdef([_MSC_MIN_VERSION], [$6])dnl -m4_pushdef([_MSC_WITH_NAME], [m4_default([$7], m4_tolower([$1]))])dnl -m4_pushdef([_MSC_POSSIBLE_PATHS], [/usr/local /usr /opt /opt/local /usr/lib /usr/local/lib /usr/lib64])dnl -m4_pushdef([_MSC_POSSIBLE_EXTENSIONS], [so la sl dll dylib])dnl - -# Initialize variables -$1_VERSION="" -$1_CFLAGS="" -$1_LDADD="" -$1_LDFLAGS="" -$1_DISPLAY="" -$1_FOUND=0 -_msc_[]m4_tolower($1)[]_mandatory="" -_msc_[]m4_tolower($1)[]_disabled="" - -AC_ARG_WITH( - _MSC_WITH_NAME, - [AS_HELP_STRING([--with-]_MSC_WITH_NAME[=PATH], - [Path to ]_MSC_NAME[ prefix. Use 'no' to disable.])]) - -# Get the value of the --with flag -_msc_with_val="$with_[]m4_translit(_MSC_WITH_NAME, [-], [_])" - -if test "x${_msc_with_val}" = "xno"; then - AC_MSG_NOTICE([$1 support disabled via --without-]_MSC_WITH_NAME) - _msc_[]m4_tolower($1)[]_disabled=yes -elif test "x${_msc_with_val}" = "xyes"; then - _msc_[]m4_tolower($1)[]_mandatory=yes - AC_MSG_NOTICE([$1 support marked as mandatory]) - # Try pkg-config - _MSC_TRY_PKG_CONFIG([$1], [_MSC_PKG_NAMES], [_MSC_MIN_VERSION]) - if test -z "${$1_VERSION}"; then - _MSC_TRY_MANUAL([$1], [_MSC_HEADER], [_MSC_LIB_NAMES]) - fi -elif test "x${_msc_with_val}" = "x"; then - # Auto-detect - AC_MSG_NOTICE([Auto-detecting $1...]) - _MSC_TRY_PKG_CONFIG([$1], [_MSC_PKG_NAMES], [_MSC_MIN_VERSION]) - if test -z "${$1_VERSION}"; then - _MSC_TRY_MANUAL([$1], [_MSC_HEADER], [_MSC_LIB_NAMES]) - fi -else - # Specific path provided - _msc_[]m4_tolower($1)[]_mandatory=yes - _MSC_TRY_PKG_CONFIG_AT([$1], [_MSC_PKG_NAMES], [_MSC_MIN_VERSION], [${_msc_with_val}]) - if test -z "${$1_VERSION}"; then - _MSC_CHECK_AT([$1], [_MSC_HEADER], [_MSC_LIB_NAMES], [${_msc_with_val}]) - fi -fi - -# Evaluate results -if test -n "${$1_LDADD}" || test -n "${$1_VERSION}"; then - $1_FOUND=1 - AC_MSG_NOTICE([using $1 v${$1_VERSION}]) - $1_CFLAGS="_MSC_EXTRA_CFLAGS ${$1_CFLAGS}" - if test -z "${$1_DISPLAY}"; then - $1_DISPLAY="${$1_LDADD}, ${$1_CFLAGS}" - fi - AC_SUBST($1_VERSION) - AC_SUBST($1_LDADD) - AC_SUBST($1_LDFLAGS) - AC_SUBST($1_CFLAGS) - AC_SUBST($1_DISPLAY) -elif test -n "${_msc_[]m4_tolower($1)[]_disabled}"; then - $1_FOUND=2 -elif test -n "${_msc_[]m4_tolower($1)[]_mandatory}"; then - AC_MSG_ERROR([$1 was explicitly requested but not found]) -else - AC_MSG_NOTICE([$1 library not found]) - $1_FOUND=0 -fi - -AC_SUBST($1_FOUND) - -m4_popdef([_MSC_POSSIBLE_EXTENSIONS])dnl -m4_popdef([_MSC_POSSIBLE_PATHS])dnl -m4_popdef([_MSC_WITH_NAME])dnl -m4_popdef([_MSC_MIN_VERSION])dnl -m4_popdef([_MSC_EXTRA_CFLAGS])dnl -m4_popdef([_MSC_LIB_NAMES])dnl -m4_popdef([_MSC_HEADER])dnl -m4_popdef([_MSC_PKG_NAMES])dnl -m4_popdef([_MSC_NAME])dnl -]) # MSC_CHECK_LIB - - -dnl _MSC_TRY_PKG_CONFIG(NAME, PKG_NAMES, MIN_VERSION) -dnl Try to find the library via pkg-config -AC_DEFUN([_MSC_TRY_PKG_CONFIG], [ -if test -n "${PKG_CONFIG}"; then - _msc_pkg_name="" - for _msc_p in $2; do - if test -n "$3"; then - if ${PKG_CONFIG} --exists "${_msc_p} >= $3" 2>/dev/null; then - _msc_pkg_name="${_msc_p}" - break - fi - else - if ${PKG_CONFIG} --exists "${_msc_p}" 2>/dev/null; then - _msc_pkg_name="${_msc_p}" - break - fi - fi - done - if test -n "${_msc_pkg_name}"; then - $1_VERSION="`${PKG_CONFIG} ${_msc_pkg_name} --modversion`" - $1_CFLAGS="`${PKG_CONFIG} ${_msc_pkg_name} --cflags`" - $1_LDADD="`${PKG_CONFIG} ${_msc_pkg_name} --libs-only-l`" - $1_LDFLAGS="`${PKG_CONFIG} ${_msc_pkg_name} --libs-only-L --libs-only-other`" - $1_DISPLAY="${$1_LDADD}, ${$1_CFLAGS}" - AC_MSG_NOTICE([$1 found via pkg-config: ${_msc_pkg_name} v${$1_VERSION}]) - fi -fi -]) # _MSC_TRY_PKG_CONFIG - - -dnl _MSC_TRY_PKG_CONFIG_AT(NAME, PKG_NAMES, MIN_VERSION, PATH) -dnl Try pkg-config with PKG_CONFIG_PATH set to a specific location -AC_DEFUN([_MSC_TRY_PKG_CONFIG_AT], [ -if test -n "${PKG_CONFIG}"; then - _msc_save_pkg_config_path="${PKG_CONFIG_PATH}" - PKG_CONFIG_PATH="$4/lib/pkgconfig:$4/lib64/pkgconfig:$4/share/pkgconfig:${PKG_CONFIG_PATH}" - export PKG_CONFIG_PATH - _MSC_TRY_PKG_CONFIG([$1], [$2], [$3]) - PKG_CONFIG_PATH="${_msc_save_pkg_config_path}" - export PKG_CONFIG_PATH -fi -]) # _MSC_TRY_PKG_CONFIG_AT - - -dnl _MSC_TRY_MANUAL(NAME, HEADER, LIB_NAMES) -dnl Try to find the library by scanning common paths -AC_DEFUN([_MSC_TRY_MANUAL], [ -for _msc_search_path in /usr/local /usr /opt /opt/local /usr/lib /usr/local/lib /usr/lib64; do - _MSC_CHECK_AT([$1], [$2], [$3], [${_msc_search_path}]) - if test -n "${$1_VERSION}"; then - break - fi - # Also check if LDADD was set (version may not always be detected manually) - if test -n "${$1_LDADD}"; then - break - fi -done -]) # _MSC_TRY_MANUAL - - -dnl _MSC_CHECK_AT(NAME, HEADER, LIB_NAMES, PATH) -dnl Check for a library at a specific path -AC_DEFUN([_MSC_CHECK_AT], [ -_msc_check_lib_path="" -_msc_check_lib_name="" -_msc_check_lib_file="" -_msc_check_inc_path="" - -# Search for library files -for _msc_ext in so la sl dll dylib; do - for _msc_ln in $3; do - for _msc_try_path in \ - "$4/lib${_msc_ln}.${_msc_ext}" \ - "$4/lib/lib${_msc_ln}.${_msc_ext}" \ - "$4/lib64/lib${_msc_ln}.${_msc_ext}" \ - "$4/lib/x86_64-linux-gnu/lib${_msc_ln}.${_msc_ext}" \ - "$4/lib/i386-linux-gnu/lib${_msc_ln}.${_msc_ext}"; do - if test -e "${_msc_try_path}"; then - _msc_check_lib_path="`dirname ${_msc_try_path}`" - _msc_check_lib_name="${_msc_ln}" - _msc_check_lib_file="${_msc_try_path}" - break 3 - fi - done - done -done - -# Search for header file -_msc_header_base="`basename $2`" -_msc_header_dir="`dirname $2`" -if test "${_msc_header_dir}" = "."; then - # Simple header name (e.g., "lmdb.h") - if test -e "$4/include/$2"; then - _msc_check_inc_path="$4/include" - elif test -e "$4/$2"; then - _msc_check_inc_path="$4" - fi -else - # Header with subdirectory (e.g., "libxml/parser.h") - if test -e "$4/include/$2"; then - _msc_check_inc_path="$4/include" - elif test -e "$4/$2"; then - _msc_check_inc_path="$4" - fi -fi - -if test -n "${_msc_check_lib_path}" && test -n "${_msc_check_inc_path}"; then - AC_MSG_NOTICE([$1 headers found at: ${_msc_check_inc_path}]) - AC_MSG_NOTICE([$1 library found at: ${_msc_check_lib_file}]) - $1_CFLAGS="-I${_msc_check_inc_path}" - $1_LDADD="-l${_msc_check_lib_name}" - $1_LDFLAGS="-L${_msc_check_lib_path}" - $1_DISPLAY="${_msc_check_lib_file}, ${_msc_check_inc_path}" - # Version is unknown from manual detection - if test -z "${$1_VERSION}"; then - $1_VERSION="unknown" - fi -fi -]) # _MSC_CHECK_AT - - -dnl MSC_STATUS_LIB(DISPLAY_NAME, VAR_PREFIX) -dnl Print a status line for the configure summary -AC_DEFUN([MSC_STATUS_LIB], [ -if test "x${$2_FOUND}" = "x0"; then - echo " + $1 ....not found" -fi -if test "x${$2_FOUND}" = "x1"; then - AS_ECHO_N([" + $1 ....found "]) - if ! test "x${$2_VERSION}" = "x"; then - echo "v${$2_VERSION}" - else - echo "" - fi - echo " ${$2_DISPLAY}" -fi -if test "x${$2_FOUND}" = "x2"; then - echo " + $1 ....disabled" -fi -]) # MSC_STATUS_LIB - - -dnl MSC_ARG_ENABLE_BOOL(NAME, HELP_TEXT, DEFAULT, VARIABLE) -dnl Wrapper for boolean AC_ARG_ENABLE options -AC_DEFUN([MSC_ARG_ENABLE_BOOL], [ -AC_ARG_ENABLE($1, - [AS_HELP_STRING([--enable-$1],[$2])], - [case "${enableval}" in - yes) $4=true ;; - no) $4=false ;; - *) AC_MSG_ERROR([bad value ${enableval} for --enable-$1]) ;; - esac], - [$4=$3]) -]) # MSC_ARG_ENABLE_BOOL diff --git a/build/pcre.m4 b/build/pcre.m4 deleted file mode 100644 index 393da883f1..0000000000 --- a/build/pcre.m4 +++ /dev/null @@ -1,50 +0,0 @@ -dnl Check for PCRE Libraries -dnl Sets: -dnl PCRE_CFLAGS -dnl PCRE_LDADD -dnl PCRE_LDFLAGS -dnl PCRE_VERSION -dnl PCRE_FOUND - -PCRE_CONFIG="" -PCRE_VERSION="" -PCRE_CPPFLAGS="" -PCRE_CFLAGS="" -PCRE_LDFLAGS="" -PCRE_LDADD="" -PCRE_LD_PATH="" - -AC_DEFUN([CHECK_PCRE], [ -MSC_CHECK_LIB([PCRE], [libpcre], [pcre.h], [pcre], [-DWITH_PCRE]) - -# Post-processing: JIT detection -if test "x${PCRE_FOUND}" = "x1" && test -n "${PCRE_VERSION}"; then - AC_MSG_CHECKING([for PCRE JIT]) - _msc_save_CFLAGS=$CFLAGS - _msc_save_LDFLAGS=$LDFLAGS - _msc_save_LIBS=$LIBS - CFLAGS="${PCRE_CFLAGS} ${CFLAGS}" - LDFLAGS="${PCRE_LDADD} ${LDFLAGS}" - LIBS="${PCRE_LDADD} ${LIBS}" - AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[ #include ]], - [[ pcre_jit_exec(NULL, NULL, NULL, 0, 0, 0, NULL, 0, NULL); ]])], - [ _msc_pcre_jit_available=yes ], - [:] - ) - if test "x$_msc_pcre_jit_available" = "xyes"; then - AC_MSG_RESULT([yes]) - PCRE_CFLAGS="${PCRE_CFLAGS} -DPCRE_HAVE_JIT" - else - AC_MSG_RESULT([no]) - fi - CFLAGS=$_msc_save_CFLAGS - LDFLAGS=$_msc_save_LDFLAGS - LIBS=$_msc_save_LIBS -fi - -AC_SUBST(PCRE_CONFIG) -AC_SUBST(PCRE_CPPFLAGS) -AC_SUBST(PCRE_LD_PATH) - -]) # AC_DEFUN [CHECK_PCRE] diff --git a/build/pcre2.m4 b/build/pcre2.m4 deleted file mode 100644 index c441a61155..0000000000 --- a/build/pcre2.m4 +++ /dev/null @@ -1,13 +0,0 @@ -dnl Check for PCRE2 Libraries -dnl PCRE2 is enabled by default (mandatory unless --with-pcre is used). -dnl Sets: -dnl PCRE2_CFLAGS -dnl PCRE2_LDADD -dnl PCRE2_LDFLAGS -dnl PCRE2_VERSION -dnl PCRE2_DISPLAY -dnl PCRE2_FOUND - -AC_DEFUN([PROG_PCRE2], [ -MSC_CHECK_LIB([PCRE2], [libpcre2-8 pcre2-8 pcre2], [pcre2.h], [pcre2-8], []) -]) # AC_DEFUN [PROG_PCRE2] diff --git a/build/release.sh b/build/release.sh deleted file mode 100755 index a182067b3f..0000000000 --- a/build/release.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -git clean -xfdi -git submodule foreach --recursive git clean -xfdi - -VERSION=`git describe --tags` -DIR_NAME="modsecurity-$VERSION" -TAR_NAME="modsecurity-$VERSION.tar.gz" - -MY_DIR=${PWD##*/} -./build.sh - -cd .. -tar --transform "s/^$MY_DIR/$DIR_NAME/" -cvzf $TAR_NAME --exclude .git $MY_DIR - -sha256sum $TAR_NAME > $TAR_NAME.sha256 -gpg --detach-sign -a $TAR_NAME - -cd - -echo $TAR_NAME ": done." - diff --git a/build/ssdeep.m4 b/build/ssdeep.m4 deleted file mode 100644 index 81168bc3f0..0000000000 --- a/build/ssdeep.m4 +++ /dev/null @@ -1,11 +0,0 @@ -dnl Check for SSDEEP Libraries -dnl Sets: -dnl SSDEEP_CFLAGS -dnl SSDEEP_LDADD -dnl SSDEEP_LDFLAGS -dnl SSDEEP_DISPLAY -dnl SSDEEP_FOUND - -AC_DEFUN([CHECK_SSDEEP], [ -MSC_CHECK_LIB([SSDEEP], [fuzzy], [fuzzy.h], [fuzzy], [-DWITH_SSDEEP]) -]) # AC_DEFUN [CHECK_SSDEEP] diff --git a/build/win32/CMakeLists.txt b/build/win32/CMakeLists.txt deleted file mode 100644 index 1fbe029c91..0000000000 --- a/build/win32/CMakeLists.txt +++ /dev/null @@ -1,293 +0,0 @@ -cmake_minimum_required(VERSION 3.24) - -set(BASE_DIR ${CMAKE_CURRENT_LIST_DIR}/../..) - -option(WITH_LMDB "Include LMDB support" OFF) -option(WITH_LUA "Include LUA support" ON) -option(WITH_LIBXML2 "Include LibXML2 support" ON) -option(WITH_MAXMIND "Include MaxMind support" ON) -option(WITH_CURL "Include CURL support" ON) -set(JSON_BACKEND "simdjson" CACHE STRING "Select internal JSON backend (simdjson or jsoncons)") -set_property(CACHE JSON_BACKEND PROPERTY STRINGS simdjson jsoncons) - -option(USE_ASAN "Build with Address Sanitizer" OFF) - -# common compiler settings - -# NOTE: MBEDTLS_CONFIG_FILE is not only required to compile the mbedtls subset in others, but also -# when their headers are included while compiling libModSecurity -add_compile_definitions(WIN32 _CRT_SECURE_NO_WARNINGS MBEDTLS_CONFIG_FILE="mbedtls/mbedtls_config.h") - -# set standards conformance preprocessor & compiler to align with cross-compiled codebase -# NOTE: otherwise visual c++'s default compiler/preprocessor behaviour generates C4067 warnings -# (unexpected tokens following preprocessor directive - expected a newline) -add_compile_options(/Zc:preprocessor /permissive-) - -if(USE_ASAN) - add_compile_options(/fsanitize=address) - add_link_options(/INFERASANLIBS /INCREMENTAL:no) -endif() - -# libinjection - -project(libinjection C) - -set(LIBINJECTION_DIR ${BASE_DIR}/others/libinjection) - -add_library(libinjection STATIC ${LIBINJECTION_DIR}/src/libinjection_sqli.c ${LIBINJECTION_DIR}/src/libinjection_xss.c ${LIBINJECTION_DIR}/src/libinjection_html5.c) - -# get libinjection version with git describe -execute_process( - COMMAND git describe - WORKING_DIRECTORY ${LIBINJECTION_DIR} - OUTPUT_VARIABLE LIBINJECTION_VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE -) - -message("-- Detecting libinjection version - ${LIBINJECTION_VERSION}") - -target_compile_definitions(libinjection PRIVATE LIBINJECTION_VERSION="${LIBINJECTION_VERSION}") - -# mbedtls (mbedcrypto) - -project(mbedcrypto C) - -set(MBEDTLS_DIR ${BASE_DIR}/others/mbedtls) -set(SIMDJSON_DIR ${BASE_DIR}/others/simdjson/singleheader) -set(JSONCONS_DIR ${BASE_DIR}/others/jsoncons/include) - -add_library(mbedcrypto STATIC ${MBEDTLS_DIR}/library/base64.c ${MBEDTLS_DIR}/library/sha1.c ${MBEDTLS_DIR}/library/md5.c ${MBEDTLS_DIR}/library/platform_util.c ${MBEDTLS_DIR}/library/constant_time.c) - -target_include_directories(mbedcrypto PRIVATE ${MBEDTLS_DIR}/include) - -# get mbedtls version with git describe -execute_process( - COMMAND git describe - WORKING_DIRECTORY ${MBEDTLS_DIR} - OUTPUT_VARIABLE MBEDTLS_VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE -) - -message("-- Detecting Mbed TLS version - ${MBEDTLS_VERSION}") - -# -# libModSecurity -# - -project(libModSecurity - VERSION - 3.0.12 - LANGUAGES - CXX -) - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED On) -set(CMAKE_CXX_EXTENSIONS Off) - -set(PACKAGE_BUGREPORT "security@modsecurity.org") -set(PACKAGE_NAME "modsecurity") -set(PACKAGE_VERSION "${PROJECT_VERSION}") -set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") -set(PACKAGE_TARNAME "${PACKAGE_NAME}") - -if(NOT JSON_BACKEND STREQUAL "simdjson" AND NOT JSON_BACKEND STREQUAL "jsoncons") - message(FATAL_ERROR "Unsupported JSON_BACKEND '${JSON_BACKEND}'. Use simdjson or jsoncons.") -endif() - -unset(MSC_JSON_BACKEND_SIMDJSON) -unset(MSC_JSON_BACKEND_JSONCONS) -set(JSON_BACKEND_SIMDJSON_SOURCE ${BASE_DIR}/src/request_body_processor/json_backend_simdjson.cc) -set(JSON_BACKEND_JSONCONS_SOURCE ${BASE_DIR}/src/request_body_processor/json_backend_jsoncons.cc) - -if(JSON_BACKEND STREQUAL "simdjson") - set(MSC_JSON_BACKEND_SIMDJSON 1) - set(JSON_BACKEND_SOURCES ${JSON_BACKEND_SIMDJSON_SOURCE} ${SIMDJSON_DIR}/simdjson.cpp) - set(JSON_BACKEND_INCLUDE_DIR ${SIMDJSON_DIR}) -else() - set(MSC_JSON_BACKEND_JSONCONS 1) - set(JSON_BACKEND_SOURCES ${JSON_BACKEND_JSONCONS_SOURCE}) - set(JSON_BACKEND_INCLUDE_DIR ${JSONCONS_DIR}) -endif() - -set(HAVE_GEOIP 0) # should always be zero, no conan package available -set(HAVE_SSDEEP 0) # should always be zero, no conan package available - -macro(enable_feature flag option) - if(${option}) - set(${flag} 1) # ON - else() - set(${flag} 0) # OFF - endif() -endmacro() - -enable_feature(HAVE_LMDB ${WITH_LMDB}) -enable_feature(HAVE_LUA ${WITH_LUA}) -enable_feature(HAVE_LIBXML2 ${WITH_LIBXML2}) -enable_feature(HAVE_MAXMIND ${WITH_MAXMIND}) -enable_feature(HAVE_CURL ${WITH_CURL}) - -include(${CMAKE_CURRENT_LIST_DIR}/ConfigureChecks.cmake) - -configure_file(config.h.cmake ${BASE_DIR}/src/config.h) - -find_package(PCRE2 REQUIRED) -find_package(Poco REQUIRED) -find_package(dirent REQUIRED) # used only by tests (check dirent::dirent refernces) - -macro(include_package package flag) - if(${flag}) - find_package(${package} REQUIRED) - endif() -endmacro() - -include_package(libxml2 HAVE_LIBXML2) -include_package(lua HAVE_LUA) -include_package(CURL HAVE_CURL) -include_package(lmdb HAVE_LMDB) -include_package(maxminddb HAVE_MAXMIND) - -# library -# - -# NOTE: required to generate libModSecurity's import library (libModSecurity.lib), used by tests to link with shared library -set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) - -file(GLOB_RECURSE libModSecuritySources ${BASE_DIR}/src/*.cc) -list(REMOVE_ITEM libModSecuritySources ${JSON_BACKEND_SIMDJSON_SOURCE} ${JSON_BACKEND_JSONCONS_SOURCE}) -list(APPEND libModSecuritySources ${JSON_BACKEND_SOURCES}) - -add_library(libModSecurity SHARED ${libModSecuritySources}) - -target_compile_definitions(libModSecurity PRIVATE WITH_PCRE2) -target_include_directories(libModSecurity PRIVATE ${BASE_DIR} ${BASE_DIR}/headers ${BASE_DIR}/others ${MBEDTLS_DIR}/include ${JSON_BACKEND_INCLUDE_DIR}) -target_link_libraries(libModSecurity PRIVATE pcre2::pcre2 libinjection mbedcrypto Poco::Poco Iphlpapi.lib) - -macro(add_package_dependency project compile_definition link_library flag) - if(${flag}) - target_compile_definitions(${project} PRIVATE ${compile_definition}) - target_link_libraries(${project} PRIVATE ${link_library}) - endif() -endmacro() - -add_package_dependency(libModSecurity WITH_LIBXML2 LibXml2::LibXml2 HAVE_LIBXML2) -add_package_dependency(libModSecurity WITH_LUA lua::lua HAVE_LUA) -if(HAVE_LUA) - target_compile_definitions(libModSecurity PRIVATE WITH_LUA_5_4) -endif() -add_package_dependency(libModSecurity MSC_WITH_CURL CURL::libcurl HAVE_CURL) -add_package_dependency(libModSecurity WITH_LMDB lmdb::lmdb HAVE_LMDB) -add_package_dependency(libModSecurity WITH_MAXMIND maxminddb::maxminddb HAVE_MAXMIND) - -# tests -# - -project(libModSecurityTests) - -function(setTestTargetProperties executable) - target_compile_definitions(${executable} PRIVATE WITH_PCRE2) - target_include_directories(${executable} PRIVATE ${BASE_DIR} ${BASE_DIR}/headers ${JSONCONS_DIR}) - target_link_libraries(${executable} PRIVATE libModSecurity pcre2::pcre2 dirent::dirent) -endfunction() - -# unit tests -file(GLOB unitTestSources ${BASE_DIR}/test/unit/*.cc) -add_executable(unit_tests ${unitTestSources} ${BASE_DIR}/test/common/custom_debug_log.cc) -setTestTargetProperties(unit_tests) -target_compile_options(unit_tests PRIVATE /wd4805) - -# regression tests -file(GLOB regressionTestsSources ${BASE_DIR}/test/regression/*.cc) -add_executable(regression_tests ${regressionTestsSources} ${BASE_DIR}/test/common/custom_debug_log.cc) -setTestTargetProperties(regression_tests) - -macro(add_regression_test_capability compile_definition flag) - if(${flag}) - target_compile_definitions(regression_tests PRIVATE ${compile_definition}) - endif() -endmacro() - -add_regression_test_capability(WITH_LUA HAVE_LUA) -add_regression_test_capability(WITH_CURL HAVE_CURL) -add_regression_test_capability(WITH_LMDB HAVE_LMDB) -add_regression_test_capability(WITH_MAXMIND HAVE_MAXMIND) - -enable_testing() - -file(READ ${BASE_DIR}/test/test-suite.in TEST_FILES_RAW) -string(REPLACE "\n" ";" TEST_FILES ${TEST_FILES_RAW}) - -foreach(TEST_FILE ${TEST_FILES}) - # ignore comment lines - string(FIND ${TEST_FILE} "#" is_comment) - if(NOT is_comment EQUAL 0) - string(FIND ${TEST_FILE} "TESTS+=" is_valid_prefix) - if(NOT is_valid_prefix EQUAL 0) - message(FATAL_ERROR "Invalid prefix in line: ${TEST_FILE}") - endif() - - # remove 'TESTS+=' prefix and 'test/' too because tests are launched - # from that directory - string(SUBSTRING ${TEST_FILE} 12 -1 TEST_FILE) - - # test name - get_filename_component(TEST_NAME ${TEST_FILE} NAME_WE) - - # determine test runner based on test path prefix - string(FIND ${TEST_FILE} "test-cases/regression/" is_regression_test) - if(is_regression_test EQUAL 0) - set(TEST_RUNNER "regression_tests") - else() - set(TEST_RUNNER "unit_tests") - endif() - - add_test(NAME ${TEST_NAME} COMMAND ${TEST_RUNNER} ${TEST_FILE} WORKING_DIRECTORY ${BASE_DIR}/test) - endif() -endforeach() - -# benchmark -add_executable(benchmark ${BASE_DIR}/test/benchmark/benchmark.cc) -setTestTargetProperties(benchmark) - -# rules_optimization -add_executable(rules_optimization ${BASE_DIR}/test/optimization/optimization.cc) -setTestTargetProperties(rules_optimization) - - -# examples -# - -project(libModSecurityExamples) - -function(setExampleTargetProperties executable) - target_include_directories(${executable} PRIVATE ${BASE_DIR} ${BASE_DIR}/headers) - target_link_libraries(${executable} PRIVATE libModSecurity) -endfunction() - -# simple_example_using_c -add_executable(simple_example_using_c ${BASE_DIR}/examples/simple_example_using_c/test.c) -setExampleTargetProperties(simple_example_using_c) - -# using_bodies_in_chunks -add_executable(using_bodies_in_chunks ${BASE_DIR}/examples/using_bodies_in_chunks/simple_request.cc) -setExampleTargetProperties(using_bodies_in_chunks) - -# reading_logs_via_rule_message -add_executable(reading_logs_via_rule_message ${BASE_DIR}/examples/reading_logs_via_rule_message/simple_request.cc) -setExampleTargetProperties(reading_logs_via_rule_message) - -# reading_logs_with_offset -add_executable(reading_logs_with_offset ${BASE_DIR}/examples/reading_logs_with_offset/read.cc) -setExampleTargetProperties(reading_logs_with_offset) - -# multithread -add_executable(multithread ${BASE_DIR}/examples/multithread/multithread.cc) -setExampleTargetProperties(multithread) - -# tools -# - -# rules_check -add_executable(rules_check ${BASE_DIR}/tools/rules-check/rules-check.cc) -target_include_directories(rules_check PRIVATE ${BASE_DIR} ${BASE_DIR}/headers) -target_link_libraries(rules_check PRIVATE libModSecurity) diff --git a/build/win32/ConfigureChecks.cmake b/build/win32/ConfigureChecks.cmake deleted file mode 100644 index 6322b69652..0000000000 --- a/build/win32/ConfigureChecks.cmake +++ /dev/null @@ -1,18 +0,0 @@ -include(CheckIncludeFile) -include(CheckIncludeFiles) - -check_include_file("dlfcn.h" HAVE_DLFCN_H) -check_include_file("inttypes.h" HAVE_INTTYPES_H) -check_include_file("stdint.h" HAVE_STDINT_H) -check_include_file("stdio.h" HAVE_STDIO_H) -check_include_file("stdlib.h" HAVE_STDLIB_H) -check_include_file("string" HAVE_STRING) -check_include_file("strings.h" HAVE_STRINGS_H) -check_include_file("string.h" HAVE_STRING_H) -check_include_file("sys/stat.h" HAVE_SYS_STAT_H) -check_include_file("sys/types.h" HAVE_SYS_TYPES_H) -check_include_file("sys/utsname.h" HAVE_SYS_UTSNAME_H) -check_include_file("unistd.h" HAVE_UNISTD_H) - -#/* Define to 1 if you have the ANSI C header files. */ -check_include_files("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS) diff --git a/build/win32/README.md b/build/win32/README.md deleted file mode 100644 index 2c9c11d06f..0000000000 --- a/build/win32/README.md +++ /dev/null @@ -1,112 +0,0 @@ -# libModSecurity Windows build information - -The Windows build of libModSecurity uses Build Tools for Visual Studio 2022 (for Visual C++ & CMake) and Conan package manager. - -## Contents - -- [Prerequisites](#prerequisites) -- [Build](#build) - - [Optional features](#optional-features) - - [Address Sanitizer](#address-sanitizer) - - [Docker container](#docker-container) - -## Prerequisites - - * [Build Tools for Visual Studio 2022](https://aka.ms/vs/17/release/vs_buildtools.exe) - * Install *Desktop development with C++* workload, which includes: - * MSVC C++ compiler - * Windows SDK - * CMake - * Address Sanitizer - * [Conan package manager 2.10.2](https://github.com/conan-io/conan/releases/download/2.10.2/conan-2.10.2-windows-x86_64-installer.exe) - * Install and then setup the default Conan profile to use the MSVC C++ compiler: - 1. Open a command-prompt and set the MSVC C++ compiler environment by executing: `C:\BuildTools\VC\Auxiliary\Build\vcvars64.bat` - 2. Execute: `conan profile detect --force` - * [Git for Windows 2.44.0](https://github.com/git-for-windows/git/releases/download/v2.44.0.windows.1/Git-2.44.0-64-bit.exe) - * To clone the libModSecurity repository. - * NOTE: Make sure to initialize and update submodules (to get `libinjection` and regression tests) - * `git submodule init` - * `git submodule update` - -## Build - -Install the prerequisites listed in the previous section, checkout libModSecurity and from the directory where it's located execute: - -``` -vcbuild.bat [build_configuration] [arch] [USE_ASAN] -``` - -where `[build_configuration]` can be: `Release` (default), `RelWithDebInfo`, `MinSizeRel` or `Debug`, and `[arch]` can be: `x86_64` (default) or `x86`. - -Built files will be located in the directory: `build\win32\build\[build_configuration]` and include: - - * `libModSecurity.dll` - * Executable files for test projects - * `unit_tests.exe` - * `regression_tests.exe` - * `benchmark.exe` - * `rules_optimization.exe` - * Executable files for examples - * `simple_example_using_c.exe` - * `using_bodies_in_chunks.exe` - * `reading_logs_via_rule_message.exe` - * `reading_logs_with_offset.exe` - * `multithread.exe` - * Executable files for tools - * `rules_check.exe` - -NOTE: When building a different configuration, it's recommended to reset: - - * the build directory: `build\win32\build` - * previously built conan packages executing the command: - * `conan remove * -c` - -### Optional features - -By default the following all the following features are enabled by including the associated third-party library through a Conan package: - - * libxml2 2.12.6 for XML processing support - * libcurl 8.6.0 to support http requests from rules - * libmaxminddb 1.9.1 to support reading MaxMind DB files. - * LUA 5.4.6 to enable rules to run scripts in this language for extensibility - * lmdb 0.9.31 in-memory database - -Each of these can be turned off by updating the associated `HAVE_xxx` variable (setting it to zero) in the beginning of the libModSecurity section of `CMakeLists.txt`. - -### Address Sanitizer - -[AddressSanitizer](https://github.com/google/sanitizers/wiki/AddressSanitizer) (aka ASan) is a memory error detector for C/C++. - -To generate a build with *Address Sanitizer*, add the `USE_ASAN` optional third argument to `vcbuild.bat`. For example: - * `vcbuild.bat Debug x86_64 USE_ASAN` - -NOTE: `USE_ASAN` does not work with `Release` & `MinSizeRel` configurations because they do not include debug info (it is only compatible with `Debug` & `RelWithDebInfo` builds). - - * References - * [AddressSanitizer | Microsoft Learn](https://learn.microsoft.com/en-us/cpp/sanitizers/asan?view=msvc-170) - * [AddressSanitizer for Windows: x64 and Debug Build Support - C++ Team Blog (microsoft.com)](https://devblogs.microsoft.com/cppblog/asan-for-windows-x64-and-debug-build-support/) - * [AddressSanitizer language, build, and debugging reference | Microsoft Learn](https://learn.microsoft.com/en-us/cpp/sanitizers/asan-building?view=msvc-170) - -### Docker container - -A `Dockerfile` configuration file is provided in the `docker` subdir that creates a Windows container image which installs the [prerequisites](#prerequisites) and builds libModSecurity and other binaries. - -NOTE: Windows containers are supported in Docker Desktop for Windows, using the *Switch to Windows containers...* option on the context menu of the system tray icon. - -To build the docker image, execute the following command (from the `build\win32\docker` directory): - - * `docker build -t libmodsecurity:latest -m 4GB .` - * Build type, architecture and build with Address Sanitizer can be configured through build arguments (`BUILD_TYPE`, `ARCH` & `USE_ASAN` respectively). For example, to generate a debug build, add the following argument: - * `--build-arg BUILD_TYPE=Debug` - -Once the image is generated, the library and associated binaries (tests & examples) are located in the `C:\src\ModSecurity\build\win32\build\[build_type]` directory. - -To extract the library (`libModSecurity.dll`) from the image, you can execute the following commands: - - * `docker container create --name [container_name] libmodsecurity` - * `docker cp [container_name]:C:\src\ModSecurity\build\win32\build\[build_type]\libModSecurity.dll .` - * NOTE: If you leave out the `libModSecurity.dll` filename out, you can copy all the built binaries (including examples & tests). - -Additionally, the image can be used interactively for additional development work by executing: - - * `docker run -it libmodsecurity` diff --git a/build/win32/conanfile.txt b/build/win32/conanfile.txt deleted file mode 100644 index 0eddc175e4..0000000000 --- a/build/win32/conanfile.txt +++ /dev/null @@ -1,13 +0,0 @@ -[requires] -pcre2/10.42 -libxml2/2.12.6 -lua/5.4.6 -libcurl/8.6.0 -lmdb/0.9.31 -libmaxminddb/1.9.1 -dirent/1.24 -poco/1.13.3 - -[generators] -CMakeDeps -CMakeToolchain diff --git a/build/win32/config.h.cmake b/build/win32/config.h.cmake deleted file mode 100644 index d56ce7c56f..0000000000 --- a/build/win32/config.h.cmake +++ /dev/null @@ -1,95 +0,0 @@ -/* config.h.cmake. Based upon generated config.h.in. */ - -#ifndef MODSECURITY_CONFIG_H -#define MODSECURITY_CONFIG_H 1 - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_DLFCN_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_INTTYPES_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_IOSTREAM - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_STDIO_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_STDLIB_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_STRING - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_STRING_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_SYS_TYPES_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_SYS_UTSNAME_H - -/* Define to 1 if you have the header file. */ -#cmakedefine HAVE_UNISTD_H - -/* Define if GeoIP is available */ -#cmakedefine HAVE_GEOIP - -/* Define if LMDB is available */ -#cmakedefine HAVE_LMDB - -/* Define if LUA is available */ -#cmakedefine HAVE_LUA - -/* Define if MaxMind is available */ -#cmakedefine HAVE_MAXMIND - -/* Define if SSDEEP is available */ -#cmakedefine HAVE_SSDEEP - -/* Define if libcurl is available */ -#cmakedefine HAVE_CURL - -/* Define if jsoncons is the selected internal JSON backend */ -#cmakedefine MSC_JSON_BACKEND_JSONCONS - -/* Define if simdjson is the selected internal JSON backend */ -#cmakedefine MSC_JSON_BACKEND_SIMDJSON - -/* Name of package */ -#define PACKAGE "@PACKAGE_NAME@" - -/* Define to the address where bug reports for this package should be sent. */ -#cmakedefine PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@" - -/* Define to the full name of this package. */ -#cmakedefine PACKAGE_NAME "@PACKAGE_NAME@" - -/* Define to the full name and version of this package. */ -#cmakedefine PACKAGE_STRING "@PACKAGE_STRING@" - -/* Define to the one symbol short name of this package. */ -#cmakedefine PACKAGE_TARNAME "@PACKAGE_TARNAME@" - -/* Define to the home page for this package. */ -#define PACKAGE_URL "" - -/* Define to the version of this package. */ -#cmakedefine PACKAGE_VERSION "@PACKAGE_VERSION@" - -/* Define to 1 if you have the ANSI C header files. */ -#ifndef STDC_HEADERS -#cmakedefine STDC_HEADERS -#endif - -#endif // ndef MODSECURITY_CONFIG_H diff --git a/build/win32/docker/Dockerfile b/build/win32/docker/Dockerfile deleted file mode 100644 index e01897904c..0000000000 --- a/build/win32/docker/Dockerfile +++ /dev/null @@ -1,115 +0,0 @@ -# escape=` - -ARG FROM_IMAGE=mcr.microsoft.com/windows/servercore:ltsc2022 -FROM ${FROM_IMAGE} - -# reset the shell. -SHELL ["cmd", "/S", "/C"] - -# set up environment to collect install errors. -COPY InstallBuildTools.cmd C:\TEMP\ -ADD https://aka.ms/vscollect.exe C:\TEMP\collect.exe - -# download channel for fixed install. -ARG CHANNEL_URL=https://aka.ms/vs/17/release/channel -ADD ${CHANNEL_URL} C:\TEMP\VisualStudio.chman - -# download and install Build Tools for Visual Studio 2022 for native desktop workload. -ADD https://aka.ms/vs/17/release/vs_buildtools.exe C:\TEMP\vs_buildtools.exe -RUN C:\TEMP\InstallBuildTools.cmd C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache ` - --channelUri C:\TEMP\VisualStudio.chman ` - --installChannelUri C:\TEMP\VisualStudio.chman ` - --add Microsoft.VisualStudio.Workload.VCTools ` - --includeRecommended ` - --installPath C:\BuildTools - -# download & install GIT -ARG GIT_VERSION=2.44.0 -ARG GIT_BINARY=Git-${GIT_VERSION}-64-bit.exe -ARG GIT_URL=https://github.com/git-for-windows/git/releases/download/v${GIT_VERSION}.windows.1/${GIT_BINARY} - -COPY git.inf C:\TEMP\ -ARG INSTALLER=C:\TEMP\${GIT_BINARY} -ADD ${GIT_URL} ${INSTALLER} -RUN %INSTALLER% /SP- /VERYSILENT /SUPPRESSMSGBOXES /NOCANCEL ` - /NORESTART /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS /LOADINF=git.inf - -# download & setup conan -ARG CONAN_VERSION=2.10.2 -ARG CONAN_BINARY=conan-${CONAN_VERSION}-windows-x86_64-installer.exe -ARG CONAN_URL=https://github.com/conan-io/conan/releases/download/${CONAN_VERSION}/${CONAN_BINARY} - -ARG INSTALLER=C:\TEMP\${CONAN_BINARY} -ADD ${CONAN_URL} ${INSTALLER} -RUN %INSTALLER% /SP- /VERYSILENT /SUPPRESSMSGBOXES - -# setup conan profile -RUN C:\BuildTools\VC\Auxiliary\Build\vcvars64.bat && conan profile detect --force - -# download libModSecurity -# - -# create src dir -ARG SRC_DIR=C:\src - -WORKDIR C:\ -RUN cmd.exe /C md %SRC_DIR% - -# libModSecurity -WORKDIR ${SRC_DIR} - -ARG MOD_SECURITY_TAG=v3/master -RUN git clone -c advice.detachedHead=false --depth 1 --branch %MOD_SECURITY_TAG% https://github.com/owasp-modsecurity/ModSecurity.git - -ARG MOD_SECURITY_DIR=${SRC_DIR}\ModSecurity -WORKDIR ${MOD_SECURITY_DIR} - -# fetch submodules (bindings/python, others/libinjection, test/test-cases/secrules-language-tests) -RUN git submodule init -RUN git submodule update - -# build libraries -# - -ARG BUILD_TYPE=Release -ARG ARCH=x86_64 -ARG USE_ASAN= - -RUN C:\BuildTools\VC\Auxiliary\Build\vcvars64.bat && vcbuild.bat %BUILD_TYPE% %ARCH% %USE_ASAN% - -# test suite -# - -# setup test environment -RUN cmd.exe /C md \tmp -RUN cmd.exe /C md \bin -RUN cmd.exe /C copy "C:\Program Files\GIT\usr\bin" \bin > NUL -RUN cmd.exe /C copy "C:\Program Files\GIT\usr\bin\echo.exe" \bin\echo > NUL - -# disable tests that don't work on windows -ARG JQ_VERSION=1.7.1 -ARG JQ_BINARY=jq-windows-amd64.exe -ARG JQ_URL=https://github.com/jqlang/jq/releases/download/jq-${JQ_VERSION}/${JQ_BINARY} - -ARG JQ_BIN=C:\TEMP\jq.exe -ADD ${JQ_URL} ${JQ_BIN} - -WORKDIR ${MOD_SECURITY_DIR}\test\test-cases\regression - -RUN %JQ_BIN% "map(if .title == \"Test match variable (1/n)\" then .enabled = 0 else . end)" issue-2423-msg-in-chain.json > tmp.json && move /Y tmp.json issue-2423-msg-in-chain.json -RUN %JQ_BIN% "map(if .title == \"Test match variable (2/n)\" then .enabled = 0 else . end)" issue-2423-msg-in-chain.json > tmp.json && move /Y tmp.json issue-2423-msg-in-chain.json -RUN %JQ_BIN% "map(if .title == \"Test match variable (3/n)\" then .enabled = 0 else . end)" issue-2423-msg-in-chain.json > tmp.json && move /Y tmp.json issue-2423-msg-in-chain.json -RUN %JQ_BIN% "map(if .title == \"Variable offset - FILES_NAMES\" then .enabled = 0 else . end)" offset-variable.json > tmp.json && move /Y tmp.json offset-variable.json - -# run tests -WORKDIR ${MOD_SECURITY_DIR}\build\win32\build - -RUN C:\BuildTools\VC\Auxiliary\Build\vcvars64.bat && ctest -C %BUILD_TYPE% --output-on-failure - -# setup container's entrypoint -# - -WORKDIR C:\ - -# Use developer command prompt and start PowerShell if no other command specified. -ENTRYPOINT ["C:\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat", "&&", "powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"] diff --git a/build/win32/docker/InstallBuildTools.cmd b/build/win32/docker/InstallBuildTools.cmd deleted file mode 100644 index a0c07c7815..0000000000 --- a/build/win32/docker/InstallBuildTools.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@rem Copyright (C) Microsoft Corporation. All rights reserved. -@rem Licensed under the MIT license. See LICENSE.txt in the project root for license information. - -@if not defined _echo echo off -setlocal enabledelayedexpansion - -call %* -if "%ERRORLEVEL%"=="3010" ( - exit /b 0 -) else ( - if not "%ERRORLEVEL%"=="0" ( - set ERR=%ERRORLEVEL% - call C:\TEMP\collect.exe -zip:C:\vslogs.zip - - exit /b !ERR! - ) -) diff --git a/build/win32/docker/git.inf b/build/win32/docker/git.inf deleted file mode 100644 index 49781dd9a4..0000000000 --- a/build/win32/docker/git.inf +++ /dev/null @@ -1,20 +0,0 @@ -[Setup] -Lang=default -Dir=C:\Program Files\Git -Group=Git -NoIcons=0 -SetupType=default -Components=ext,ext\shellhere,ext\guihere,gitlfs,assoc,autoupdate -Tasks= -EditorOption=VIM -CustomEditorPath= -PathOption=Cmd -SSHOption=OpenSSH -TortoiseOption=false -CURLOption=WinSSL -CRLFOption=LFOnly -BashTerminalOption=ConHost -PerformanceTweaksFSCache=Enabled -UseCredentialManager=Enabled -EnableSymlinks=Disabled -EnableBuiltinInteractiveAdd=Disabled \ No newline at end of file diff --git a/configure.ac b/configure.ac index 2287a51d6a..679d7284e6 100644 --- a/configure.ac +++ b/configure.ac @@ -166,6 +166,18 @@ AC_DEFINE([MSC_JSON_BACKEND_JSONCONS], [1], fi AC_SUBST([JSON_BACKEND_VERSION]) +AC_ARG_ENABLE([json-audit-instrumentation], + [AS_HELP_STRING([--enable-json-audit-instrumentation], + [Enable optional JSON audit instrumentation for benchmark builds [default=no]])], + [enable_json_audit_instrumentation="$enableval"], + [enable_json_audit_instrumentation="no"]) + +AS_CASE([$enable_json_audit_instrumentation], + [yes], [AC_DEFINE([MSC_JSON_AUDIT_INSTRUMENTATION], [1], + [Define if optional JSON audit instrumentation is enabled])], + [no], [], + [AC_MSG_ERROR([Unsupported value '$enable_json_audit_instrumentation' for --enable-json-audit-instrumentation. Use yes or no.])]) + # SecLang test version AC_DEFUN([SECLANG_TEST_VERSION], m4_esyscmd_s(cd "test/test-cases/secrules-language-tests" && git log -1 --format="%h" --abbrev-commit && cd ../../..)) diff --git a/src/Makefile.am b/src/Makefile.am index c13e88e86a..52f24de428 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -250,7 +250,8 @@ BODY_PROCESSORS = \ request_body_processor/multipart.cc \ request_body_processor/xml.cc \ request_body_processor/json.cc \ - request_body_processor/json_adapter.cc + request_body_processor/json_adapter.cc \ + request_body_processor/json_instrumentation.cc if JSON_BACKEND_SIMDJSON BODY_PROCESSORS += \ diff --git a/src/actions/transformations/utf8_to_unicode.cc b/src/actions/transformations/utf8_to_unicode.cc index 263c782bf6..8a2cb31e5b 100644 --- a/src/actions/transformations/utf8_to_unicode.cc +++ b/src/actions/transformations/utf8_to_unicode.cc @@ -27,6 +27,42 @@ constexpr int UNICODE_ERROR_INVALID_ENCODING = -2; namespace modsecurity::actions::transformations { +static inline char *appendUnicodeEscape(char *data, + unsigned char (&unicode)[8], unsigned int d) { + int length = 0; + + *data++ = '%'; + *data++ = 'u'; + snprintf(reinterpret_cast(unicode), sizeof(unicode), "%x", d); + length = strlen(reinterpret_cast(unicode)); + + switch (length) { + case 1: + *data++ = '0'; + *data++ = '0'; + *data++ = '0'; + break; + case 2: + *data++ = '0'; + *data++ = '0'; + break; + case 3: + *data++ = '0'; + break; + case 4: + case 5: + break; + } + + for (std::string::size_type j = 0; + j < static_cast(length); j++) { + *data++ = unicode[j]; + } + + return data; +} + + static inline bool encode(std::string &value) { auto input = reinterpret_cast(value.data()); const auto input_len = value.length(); @@ -76,38 +112,9 @@ static inline bool encode(std::string &value) { unicode_len = 2; count += 6; if (count <= len) { - int length = 0; /* compute character number */ d = ((c & 0x1F) << 6) | (*(utf + 1) & 0x3F); - *data++ = '%'; - *data++ = 'u'; - snprintf(reinterpret_cast(unicode), - sizeof(reinterpret_cast(unicode)), - "%x", d); - length = strlen(reinterpret_cast(unicode)); - - switch (length) { - case 1: - *data++ = '0'; - *data++ = '0'; - *data++ = '0'; - break; - case 2: - *data++ = '0'; - *data++ = '0'; - break; - case 3: - *data++ = '0'; - break; - case 4: - case 5: - break; - } - - for (std::string::size_type j = 0; j < length; j++) { - *data++ = unicode[j]; - } - + data = appendUnicodeEscape(data, unicode, d); changed = true; } } @@ -126,40 +133,11 @@ static inline bool encode(std::string &value) { unicode_len = 3; count+=6; if (count <= len) { - int length = 0; /* compute character number */ d = ((c & 0x0F) << 12) | ((*(utf + 1) & 0x3F) << 6) | (*(utf + 2) & 0x3F); - *data++ = '%'; - *data++ = 'u'; - snprintf(reinterpret_cast(unicode), - sizeof(reinterpret_cast(unicode)), - "%x", d); - length = strlen(reinterpret_cast(unicode)); - - switch (length) { - case 1: - *data++ = '0'; - *data++ = '0'; - *data++ = '0'; - break; - case 2: - *data++ = '0'; - *data++ = '0'; - break; - case 3: - *data++ = '0'; - break; - case 4: - case 5: - break; - } - - for (std::string::size_type j = 0; j < length; j++) { - *data++ = unicode[j]; - } - + data = appendUnicodeEscape(data, unicode, d); changed = true; } } @@ -187,41 +165,12 @@ static inline bool encode(std::string &value) { unicode_len = 4; count+=7; if (count <= len) { - int length = 0; /* compute character number */ d = ((c & 0x07) << 18) | ((*(utf + 1) & 0x3F) << 12) | ((*(utf + 2) & 0x3F) << 6) | (*(utf + 3) & 0x3F); - *data++ = '%'; - *data++ = 'u'; - snprintf(reinterpret_cast(unicode), - sizeof(reinterpret_cast(unicode)), - "%x", d); - length = strlen(reinterpret_cast(unicode)); - - switch (length) { - case 1: - *data++ = '0'; - *data++ = '0'; - *data++ = '0'; - break; - case 2: - *data++ = '0'; - *data++ = '0'; - break; - case 3: - *data++ = '0'; - break; - case 4: - case 5: - break; - } - - for (std::string::size_type j = 0; j < length; j++) { - *data++ = unicode[j]; - } - + data = appendUnicodeEscape(data, unicode, d); changed = true; } } diff --git a/src/request_body_processor/json.cc b/src/request_body_processor/json.cc index 54d10a7d06..798eb23935 100644 --- a/src/request_body_processor/json.cc +++ b/src/request_body_processor/json.cc @@ -13,11 +13,18 @@ * */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "src/request_body_processor/json.h" +#include +#include #include #include "src/request_body_processor/json_adapter.h" +#include "src/request_body_processor/json_instrumentation.h" namespace modsecurity { @@ -26,6 +33,49 @@ namespace RequestBodyProcessor { static const double json_depth_limit_default = 10000.0; static const char* json_depth_limit_exceeded_msg = ". Parsing depth limit exceeded"; +namespace { + +JsonSinkStatus startContainer(std::deque *containers, + JSONContainer *container, int64_t *current_depth, double max_depth, + bool *depth_limit_exceeded) { + containers->push_back(container); + (*current_depth)++; + if (*current_depth > max_depth) { + *depth_limit_exceeded = true; + return JsonSinkStatus::DepthLimitExceeded; + } + return JsonSinkStatus::Continue; +} + +JsonSinkStatus endContainer(std::deque *containers, + int64_t *current_depth) { + if (containers->empty()) { + return JsonSinkStatus::InternalError; + } + + JSONContainer *container = containers->back(); + containers->pop_back(); + delete container; + + if (containers->empty() == false) { + JSONContainerArray *array = dynamic_cast( + containers->back()); + if (array != nullptr) { + array->m_elementCounter++; + } + } + + (*current_depth)--; + if (*current_depth < 0) { + *current_depth = 0; + return JsonSinkStatus::InternalError; + } + + return JsonSinkStatus::Continue; +} + +} // namespace + JSON::JSON(Transaction *transaction) : m_transaction(transaction), m_current_key(""), m_data(""), @@ -55,7 +105,15 @@ bool JSON::processChunk(const char *buf, unsigned int size, const std::string *err) { (void) err; if (buf != nullptr && size > 0) { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + const auto start_time = std::chrono::steady_clock::now(); + m_data.append(buf, size); + recordJsonProcessChunkAppend(size, static_cast( + std::chrono::duration_cast( + std::chrono::steady_clock::now() - start_time).count())); +#else m_data.append(buf, size); +#endif } return true; @@ -199,79 +257,24 @@ JsonSinkStatus JSON::on_number(std::string_view value) { JsonSinkStatus JSON::on_start_array() { - std::string name = getCurrentKey(); - m_containers.push_back( - reinterpret_cast(new JSONContainerArray(name))); - m_current_depth++; - if (m_current_depth > m_max_depth) { - m_depth_limit_exceeded = true; - return JsonSinkStatus::DepthLimitExceeded; - } - return JsonSinkStatus::Continue; + return startContainer(&m_containers, new JSONContainerArray(getCurrentKey()), + &m_current_depth, m_max_depth, &m_depth_limit_exceeded); } JsonSinkStatus JSON::on_end_array() { - if (m_containers.empty()) { - return JsonSinkStatus::InternalError; - } - - JSONContainer *a = m_containers.back(); - m_containers.pop_back(); - delete a; - if (m_containers.size() > 0) { - JSONContainerArray *ja = dynamic_cast( - m_containers.back()); - if (ja) { - ja->m_elementCounter++; - } - } - m_current_depth--; - if (m_current_depth < 0) { - m_current_depth = 0; - return JsonSinkStatus::InternalError; - } - - return JsonSinkStatus::Continue; + return endContainer(&m_containers, &m_current_depth); } JsonSinkStatus JSON::on_start_object() { - std::string name(getCurrentKey()); - m_containers.push_back( - reinterpret_cast(new JSONContainerMap(name))); - m_current_depth++; - if (m_current_depth > m_max_depth) { - m_depth_limit_exceeded = true; - return JsonSinkStatus::DepthLimitExceeded; - } - return JsonSinkStatus::Continue; + return startContainer(&m_containers, new JSONContainerMap(getCurrentKey()), + &m_current_depth, m_max_depth, &m_depth_limit_exceeded); } JsonSinkStatus JSON::on_end_object() { - if (m_containers.empty()) { - return JsonSinkStatus::InternalError; - } - - JSONContainer *a = m_containers.back(); - m_containers.pop_back(); - delete a; - - if (m_containers.size() > 0) { - JSONContainerArray *ja = dynamic_cast( - m_containers.back()); - if (ja) { - ja->m_elementCounter++; - } - } - - m_current_depth--; - if (m_current_depth < 0) { - m_current_depth = 0; - return JsonSinkStatus::InternalError; - } - return JsonSinkStatus::Continue; + return endContainer(&m_containers, &m_current_depth); } void JSON::clearContainers() { diff --git a/src/request_body_processor/json_backend_jsoncons.cc b/src/request_body_processor/json_backend_jsoncons.cc index b8873e9036..3d007a5f7d 100644 --- a/src/request_body_processor/json_backend_jsoncons.cc +++ b/src/request_body_processor/json_backend_jsoncons.cc @@ -13,14 +13,21 @@ * */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "src/request_body_processor/json_backend.h" #include +#include +#include #include #include #include #include +#include "src/request_body_processor/json_instrumentation.h" #include #include #include @@ -456,6 +463,7 @@ JsonParseResult emitEvent(const std::string &input, JsonEventSink *sink, return makeResult(JsonParseStatus::InternalError, JsonSinkStatus::Continue, sync_detail); } + recordJsonconsTokenSyncStep(); switch (event.event_type()) { case jsoncons::staj_event_type::begin_object: @@ -578,31 +586,65 @@ JsonParseResult parseDocumentWithJsoncons(const std::string &input, cursor_options.lossless_bignum(true); std::error_code error; +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + const auto cursor_start = std::chrono::steady_clock::now(); + jsoncons::json_string_cursor cursor(input, cursor_options, error); + recordJsonconsCursorInit(static_cast( + std::chrono::duration_cast( + std::chrono::steady_clock::now() - cursor_start).count())); +#else jsoncons::json_string_cursor cursor(input, cursor_options, error); +#endif if (error) { return fromJsonconsError(error, cursor.context()); } +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + const auto token_cursor_start = std::chrono::steady_clock::now(); + RawJsonTokenCursor token_cursor(input); + recordJsonconsTokenCursorInit(static_cast( + std::chrono::duration_cast( + std::chrono::steady_clock::now() - token_cursor_start).count())); + const auto event_loop_start = std::chrono::steady_clock::now(); + const auto record_event_loop = [&event_loop_start]() { + recordJsonconsEventLoop(static_cast( + std::chrono::duration_cast( + std::chrono::steady_clock::now() - event_loop_start).count())); + }; +#else RawJsonTokenCursor token_cursor(input); +#endif while (!cursor.done()) { JsonParseResult result = emitEvent(input, sink, &token_cursor, cursor.current(), cursor.context()); if (!result.ok()) { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + record_event_loop(); +#endif return result; } cursor.next(error); if (error) { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + record_event_loop(); +#endif return fromJsonconsError(error, cursor.context()); } } cursor.check_done(error); if (error) { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + record_event_loop(); +#endif return fromJsonconsError(error, cursor.context()); } +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + record_event_loop(); +#endif return makeResult(JsonParseStatus::Ok); } diff --git a/src/request_body_processor/json_backend_simdjson.cc b/src/request_body_processor/json_backend_simdjson.cc index 12fba0d0a0..5fe6ed06dd 100644 --- a/src/request_body_processor/json_backend_simdjson.cc +++ b/src/request_body_processor/json_backend_simdjson.cc @@ -13,11 +13,18 @@ * */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "src/request_body_processor/json_backend.h" +#include +#include #include #include +#include "src/request_body_processor/json_instrumentation.h" #include "simdjson.h" namespace modsecurity { @@ -361,13 +368,39 @@ JsonParseResult parseDocumentWithSimdjson(const std::string &input, JsonSinkStatus::InternalError, "JSON event sink is null."); } +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + const auto parser_start = std::chrono::steady_clock::now(); + simdjson::ondemand::parser parser; + recordSimdjsonParserConstruction(static_cast( + std::chrono::duration_cast( + std::chrono::steady_clock::now() - parser_start).count())); + const auto padded_start = std::chrono::steady_clock::now(); + simdjson::padded_string padded(input); + recordSimdjsonPaddedCopy(input.size(), static_cast( + std::chrono::duration_cast( + std::chrono::steady_clock::now() - padded_start).count())); +#else simdjson::ondemand::parser parser; simdjson::padded_string padded(input); +#endif simdjson::ondemand::document document; +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + const auto iterate_start = std::chrono::steady_clock::now(); + if (auto error = parser.iterate(padded).get(document); error) { + recordSimdjsonIterate(static_cast( + std::chrono::duration_cast( + std::chrono::steady_clock::now() - iterate_start).count())); + return fromSimdjsonError(error); + } + recordSimdjsonIterate(static_cast( + std::chrono::duration_cast( + std::chrono::steady_clock::now() - iterate_start).count())); +#else if (auto error = parser.iterate(padded).get(document); error) { return fromSimdjsonError(error); } +#endif JsonBackendWalker walker(sink); return walker.walk(&document); diff --git a/src/request_body_processor/json_instrumentation.cc b/src/request_body_processor/json_instrumentation.cc new file mode 100644 index 0000000000..b441f03d19 --- /dev/null +++ b/src/request_body_processor/json_instrumentation.cc @@ -0,0 +1,118 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "src/request_body_processor/json_instrumentation.h" + +#include + +namespace modsecurity { +namespace RequestBodyProcessor { +namespace { + +thread_local JsonInstrumentationMetrics g_metrics; + +std::uint64_t elapsedNanos( + std::chrono::steady_clock::time_point start_time) noexcept { + return static_cast( + std::chrono::duration_cast( + std::chrono::steady_clock::now() - start_time).count()); +} + +} // namespace + +void jsonInstrumentationReset() noexcept { + g_metrics = JsonInstrumentationMetrics{}; +} + +JsonInstrumentationMetrics jsonInstrumentationSnapshot() noexcept { + return g_metrics; +} + +std::string captureRequestBodySnapshot(const std::ostringstream &request_body) { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + const auto start_time = std::chrono::steady_clock::now(); + std::string snapshot = request_body.str(); + g_metrics.request_body_snapshot_count++; + g_metrics.request_body_snapshot_bytes += snapshot.size(); + g_metrics.request_body_snapshot_ns += elapsedNanos(start_time); + return snapshot; +#else + return request_body.str(); +#endif +} + +void recordJsonProcessChunkAppend(std::size_t bytes, + std::uint64_t elapsed_ns) noexcept { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + g_metrics.json_process_chunk_calls++; + g_metrics.json_process_chunk_appended_bytes += bytes; + g_metrics.json_process_chunk_ns += elapsed_ns; +#else + (void) bytes; + (void) elapsed_ns; +#endif +} + +void recordSimdjsonParserConstruction(std::uint64_t elapsed_ns) noexcept { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + g_metrics.simdjson_parser_constructions++; + g_metrics.simdjson_parser_construction_ns += elapsed_ns; +#else + (void) elapsed_ns; +#endif +} + +void recordSimdjsonPaddedCopy(std::size_t bytes, + std::uint64_t elapsed_ns) noexcept { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + g_metrics.simdjson_padded_copy_bytes += bytes; + g_metrics.simdjson_padded_copy_ns += elapsed_ns; +#else + (void) bytes; + (void) elapsed_ns; +#endif +} + +void recordSimdjsonIterate(std::uint64_t elapsed_ns) noexcept { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + g_metrics.simdjson_iterate_ns += elapsed_ns; +#else + (void) elapsed_ns; +#endif +} + +void recordJsonconsCursorInit(std::uint64_t elapsed_ns) noexcept { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + g_metrics.jsoncons_cursor_constructions++; + g_metrics.jsoncons_cursor_init_ns += elapsed_ns; +#else + (void) elapsed_ns; +#endif +} + +void recordJsonconsTokenCursorInit(std::uint64_t elapsed_ns) noexcept { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + g_metrics.jsoncons_token_cursor_constructions++; + g_metrics.jsoncons_token_cursor_init_ns += elapsed_ns; +#else + (void) elapsed_ns; +#endif +} + +void recordJsonconsEventLoop(std::uint64_t elapsed_ns) noexcept { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + g_metrics.jsoncons_event_loop_ns += elapsed_ns; +#else + (void) elapsed_ns; +#endif +} + +void recordJsonconsTokenSyncStep() noexcept { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + g_metrics.jsoncons_token_sync_steps++; +#endif +} + +} // namespace RequestBodyProcessor +} // namespace modsecurity diff --git a/src/request_body_processor/json_instrumentation.h b/src/request_body_processor/json_instrumentation.h new file mode 100644 index 0000000000..567e7269f3 --- /dev/null +++ b/src/request_body_processor/json_instrumentation.h @@ -0,0 +1,54 @@ +#ifndef SRC_REQUEST_BODY_PROCESSOR_JSON_INSTRUMENTATION_H_ +#define SRC_REQUEST_BODY_PROCESSOR_JSON_INSTRUMENTATION_H_ + +#include +#include +#include +#include + +namespace modsecurity { +namespace RequestBodyProcessor { + +struct JsonInstrumentationMetrics { + std::uint64_t request_body_snapshot_count{0}; + std::uint64_t request_body_snapshot_bytes{0}; + std::uint64_t request_body_snapshot_ns{0}; + + std::uint64_t json_process_chunk_calls{0}; + std::uint64_t json_process_chunk_appended_bytes{0}; + std::uint64_t json_process_chunk_ns{0}; + + std::uint64_t simdjson_parser_constructions{0}; + std::uint64_t simdjson_parser_construction_ns{0}; + std::uint64_t simdjson_padded_copy_bytes{0}; + std::uint64_t simdjson_padded_copy_ns{0}; + std::uint64_t simdjson_iterate_ns{0}; + + std::uint64_t jsoncons_cursor_constructions{0}; + std::uint64_t jsoncons_cursor_init_ns{0}; + std::uint64_t jsoncons_token_cursor_constructions{0}; + std::uint64_t jsoncons_token_cursor_init_ns{0}; + std::uint64_t jsoncons_event_loop_ns{0}; + std::uint64_t jsoncons_token_sync_steps{0}; +}; + +void jsonInstrumentationReset() noexcept; +JsonInstrumentationMetrics jsonInstrumentationSnapshot() noexcept; + +std::string captureRequestBodySnapshot(const std::ostringstream &request_body); + +void recordJsonProcessChunkAppend(std::size_t bytes, std::uint64_t elapsed_ns) + noexcept; +void recordSimdjsonParserConstruction(std::uint64_t elapsed_ns) noexcept; +void recordSimdjsonPaddedCopy(std::size_t bytes, std::uint64_t elapsed_ns) + noexcept; +void recordSimdjsonIterate(std::uint64_t elapsed_ns) noexcept; +void recordJsonconsCursorInit(std::uint64_t elapsed_ns) noexcept; +void recordJsonconsTokenCursorInit(std::uint64_t elapsed_ns) noexcept; +void recordJsonconsEventLoop(std::uint64_t elapsed_ns) noexcept; +void recordJsonconsTokenSyncStep() noexcept; + +} // namespace RequestBodyProcessor +} // namespace modsecurity + +#endif // SRC_REQUEST_BODY_PROCESSOR_JSON_INSTRUMENTATION_H_ diff --git a/src/transaction.cc b/src/transaction.cc index 6cefae2efe..953115db88 100644 --- a/src/transaction.cc +++ b/src/transaction.cc @@ -13,6 +13,10 @@ * */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "modsecurity/transaction.h" #include @@ -32,6 +36,7 @@ #include "modsecurity/intervention.h" #include "modsecurity/modsecurity.h" #include "src/request_body_processor/json.h" +#include "src/request_body_processor/json_instrumentation.h" #include "src/request_body_processor/multipart.h" #include "src/request_body_processor/xml.h" #include "modsecurity/audit_log.h" @@ -53,6 +58,7 @@ using modsecurity::actions::Action; +using modsecurity::RequestBodyProcessor::captureRequestBodySnapshot; using modsecurity::RequestBodyProcessor::Multipart; using modsecurity::RequestBodyProcessor::XML; @@ -681,13 +687,17 @@ int Transaction::processRequestBody() { */ std::unique_ptr a = m_variableRequestHeaders.resolveFirst( "Content-Type"); + const std::string requestBodySnapshot = captureRequestBodySnapshot( + m_requestBody); + const std::size_t requestBodySnapshotSize = requestBodySnapshot.size(); bool requestBodyNoFilesLimitExceeded = false; if ((m_requestBodyType == WWWFormUrlEncoded) || (m_requestBodyProcessor == JSONRequestBody) || (m_requestBodyProcessor == XMLRequestBody)) { if ((m_rules->m_requestBodyNoFilesLimit.m_set) - && (m_requestBody.str().size() > m_rules->m_requestBodyNoFilesLimit.m_value)) { + && (requestBodySnapshotSize + > m_rules->m_requestBodyNoFilesLimit.m_value)) { m_variableReqbodyError.set("1", 0); m_variableReqbodyErrorMsg.set("Request body excluding files is bigger than the maximum expected.", 0); m_variableInboundDataError.set("1", m_variableOffset); @@ -705,12 +715,12 @@ int Transaction::processRequestBody() { m_json->setMaxDepth(m_rules->m_requestBodyJsonDepthLimit.m_value); } if (m_json->init() == true) { - m_json->processChunk(m_requestBody.str().c_str(), - m_requestBody.str().size(), + m_json->processChunk(requestBodySnapshot.c_str(), + requestBodySnapshotSize, &error); m_json->complete(&error); } - if (error.empty() == false && m_requestBody.str().size() > 0) { + if (error.empty() == false && requestBodySnapshotSize > 0) { m_variableReqbodyError.set("1", m_variableOffset); m_variableReqbodyProcessorError.set("1", m_variableOffset); m_variableReqbodyErrorMsg.set("JSON parsing error: " + error, @@ -729,8 +739,8 @@ int Transaction::processRequestBody() { if (!requestBodyNoFilesLimitExceeded) { std::string error; if (m_xml->init() == true) { - m_xml->processChunk(m_requestBody.str().c_str(), - m_requestBody.str().size(), + m_xml->processChunk(requestBodySnapshot.c_str(), + requestBodySnapshotSize, &error); m_xml->complete(&error); } @@ -754,7 +764,7 @@ int Transaction::processRequestBody() { if (a != NULL) { Multipart m(*a, this); if (m.init(&error) == true) { - m.process(m_requestBody.str(), &error, m_variableOffset); + m.process(requestBodySnapshot, &error, m_variableOffset); } reqbodyNoFilesLength = m.m_reqbody_no_files_length; m.multipart_complete(&error); @@ -781,7 +791,7 @@ int Transaction::processRequestBody() { m_variableOffset++; // large size might cause issues in the parsing itself; omit if exceeded if (!requestBodyNoFilesLimitExceeded) { - extractArguments("POST", m_requestBody.str(), m_variableOffset); + extractArguments("POST", requestBodySnapshot, m_variableOffset); } } else if (m_requestBodyType != UnknownFormat) { /** @@ -835,16 +845,16 @@ int Transaction::processRequestBody() { } fullRequest = fullRequest + "\n\n"; - fullRequest = fullRequest + m_requestBody.str(); + fullRequest = fullRequest + requestBodySnapshot; m_variableFullRequest.set(fullRequest, m_variableOffset); m_variableFullRequestLength.set(std::to_string(fullRequest.size()), m_variableOffset); if (m_requestBody.tellp() > 0) { - m_variableRequestBody.set(m_requestBody.str(), m_variableOffset); + m_variableRequestBody.set(requestBodySnapshot, m_variableOffset); m_variableRequestBodyLength.set(std::to_string( - m_requestBody.str().size()), - m_variableOffset, m_requestBody.str().size()); + requestBodySnapshotSize), + m_variableOffset, requestBodySnapshotSize); } this->m_rules->evaluate(modsecurity::RequestBodyPhase, this); diff --git a/src/utils/msc_tree.cc b/src/utils/msc_tree.cc index ea6c1a4167..3b622d5c93 100644 --- a/src/utils/msc_tree.cc +++ b/src/utils/msc_tree.cc @@ -980,12 +980,11 @@ int tree_contains_ip(TreeRoot *rtree, -int add_ip_from_param( - const char *param, TreeRoot **rtree, char **error_msg) +static int add_ip_entries_from_param(const char *param, TreeRoot *rtree) { char *param_copy = strdup(param); char *saved = NULL; - char *str; + char *str = NULL; TreeNode *tnode = NULL; str = strtok_r(param_copy, ",", &saved); @@ -993,17 +992,15 @@ int add_ip_from_param( { if (strchr(str, ':') == NULL) { - tnode = TreeAddIP(str, (*rtree)->ipv4_tree, IPV4_TREE); + tnode = TreeAddIP(str, rtree->ipv4_tree, IPV4_TREE); } else { - tnode = TreeAddIP(str, (*rtree)->ipv6_tree, IPV6_TREE); + tnode = TreeAddIP(str, rtree->ipv6_tree, IPV6_TREE); } if (tnode == NULL) { - //*error_msg = apr_psprintf("Could not add entry " \ - // "\"%s\" from: %s.", str, param); free(param_copy); return -1; } @@ -1016,45 +1013,22 @@ int add_ip_from_param( } -int ip_tree_from_param( +int add_ip_from_param( const char *param, TreeRoot **rtree, char **error_msg) { - char *param_copy = strdup(param); - char *saved = NULL; - char *str = NULL; - TreeNode *tnode = NULL; + return add_ip_entries_from_param(param, *rtree); +} + +int ip_tree_from_param( + const char *param, TreeRoot **rtree, char **error_msg) +{ if (create_radix_tree(rtree, error_msg)) { - free(param_copy); return -1; } - str = strtok_r(param_copy, ",", &saved); - while (str != NULL) - { - if (strchr(str, ':') == NULL) - { - tnode = TreeAddIP(str, (*rtree)->ipv4_tree, IPV4_TREE); - } - else - { - tnode = TreeAddIP(str, (*rtree)->ipv6_tree, IPV6_TREE); - } - - if (tnode == NULL) - { - //*error_msg = apr_psprintf("Could not add entry " \ - // "\"%s\" from: %s.", str, param); - free(param_copy); - return -1; - } - - str = strtok_r(NULL, ",", &saved); - } - free(param_copy); - - return 0; + return add_ip_entries_from_param(param, *rtree); } diff --git a/src/variables/variable.h b/src/variables/variable.h index 06f407f2c3..0d6f3adb6a 100644 --- a/src/variables/variable.h +++ b/src/variables/variable.h @@ -98,6 +98,59 @@ class n : public Variable { \ } \ }; +#define VARIABLE_MONKEY_SIMPLE_VARIABLES(X) \ + X("RESPONSE_CONTENT_TYPE", m_variableResponseContentType) \ + X("ARGS_COMBINED_SIZE", m_variableARGScombinedSize) \ + X("AUTH_TYPE", m_variableAuthType) \ + X("FILES_COMBINED_SIZE", m_variableFilesCombinedSize) \ + X("FULL_REQUEST", m_variableFullRequest) \ + X("FULL_REQUEST_LENGTH", m_variableFullRequestLength) \ + X("INBOUND_DATA_ERROR", m_variableInboundDataError) \ + X("MATCHED_VAR", m_variableMatchedVar) \ + X("MATCHED_VAR_NAME", m_variableMatchedVarName) \ + X("MSC_PCRE_ERROR", m_variableMscPcreError) \ + X("MSC_PCRE_LIMITS_EXCEEDED", m_variableMscPcreLimitsExceeded) \ + X("MULTIPART_CRLF_LF_LINES", m_variableMultipartCrlfLFLines) \ + X("MULTIPART_DATA_AFTER", m_variableMultipartDataAfter) \ + X("MULTIPART_FILE_LIMIT_EXCEEDED", m_variableMultipartFileLimitExceeded) \ + X("MULTIPART_STRICT_ERROR", m_variableMultipartStrictError) \ + X("MULTIPART_HEADER_FOLDING", m_variableMultipartHeaderFolding) \ + X("MULTIPART_INVALID_QUOTING", m_variableMultipartInvalidQuoting) \ + X("MULTIPART_INVALID_HEADER_FOLDING", m_variableMultipartInvalidHeaderFolding) \ + X("MULTIPART_UNMATCHED_BOUNDARY", m_variableMultipartUnmatchedBoundary) \ + X("OUTBOUND_DATA_ERROR", m_variableOutboundDataError) \ + X("PATH_INFO", m_variablePathInfo) \ + X("QUERY_STRING", m_variableQueryString) \ + X("REMOTE_ADDR", m_variableRemoteAddr) \ + X("REMOTE_HOST", m_variableRemoteHost) \ + X("REMOTE_PORT", m_variableRemotePort) \ + X("REQBODY_ERROR", m_variableReqbodyError) \ + X("REQBODY_ERROR_MSG", m_variableReqbodyErrorMsg) \ + X("REQBODY_PROCESSOR_ERROR_MSG", m_variableReqbodyProcessorErrorMsg) \ + X("REQBODY_PROCESSOR_ERROR", m_variableReqbodyProcessorError) \ + X("REQBODY_PROCESSOR", m_variableReqbodyProcessor) \ + X("REQUEST_BASENAME", m_variableRequestBasename) \ + X("REQUEST_BODY", m_variableRequestBody) \ + X("REQUEST_BODY_LENGTH", m_variableRequestBodyLength) \ + X("REQUEST_FILENAME", m_variableRequestFilename) \ + X("REQUEST_LINE", m_variableRequestLine) \ + X("REQUEST_METHOD", m_variableRequestMethod) \ + X("REQUEST_PROTOCOL", m_variableRequestProtocol) \ + X("REQUEST_URI", m_variableRequestURI) \ + X("REQUEST_URI_RAW", m_variableRequestURIRaw) \ + X("RESOURCE", m_variableResource) \ + X("RESPONSE_BODY", m_variableResponseBody) \ + X("RESPONSE_CONTENT_LENGTH", m_variableResponseContentLength) \ + X("RESPONSE_PROTOCOL", m_variableResponseProtocol) \ + X("RESPONSE_STATUS", m_variableResponseStatus) \ + X("SERVER_ADDR", m_variableServerAddr) \ + X("SERVER_NAME", m_variableServerName) \ + X("SERVER_PORT", m_variableServerPort) \ + X("SESSIONID", m_variableSessionID) \ + X("UNIQUE_ID", m_variableUniqueID) \ + X("URLENCODED_ERROR", m_variableUrlEncodedError) \ + X("USERID", m_variableUserID) + namespace modsecurity { @@ -274,109 +327,16 @@ class VariableMonkeyResolution { throw std::invalid_argument("Variable not found."); } - if (comp(variable, "RESPONSE_CONTENT_TYPE")) { - t->m_variableResponseContentType.evaluate(l); - } else if (comp(variable, "ARGS_COMBINED_SIZE")) { - t->m_variableARGScombinedSize.evaluate(l); - } else if (comp(variable, "AUTH_TYPE")) { - t->m_variableAuthType.evaluate(l); - } else if (comp(variable, "FILES_COMBINED_SIZE")) { - t->m_variableFilesCombinedSize.evaluate(l); - } else if (comp(variable, "FULL_REQUEST")) { - t->m_variableFullRequest.evaluate(l); - } else if (comp(variable, "FULL_REQUEST_LENGTH")) { - t->m_variableFullRequestLength.evaluate(l); - } else if (comp(variable, "INBOUND_DATA_ERROR")) { - t->m_variableInboundDataError.evaluate(l); - } else if (comp(variable, "MATCHED_VAR")) { - t->m_variableMatchedVar.evaluate(l); - } else if (comp(variable, "MATCHED_VAR_NAME")) { - t->m_variableMatchedVarName.evaluate(l); - } else if (comp(variable, "MSC_PCRE_ERROR")) { - t->m_variableMscPcreError.evaluate(l); - } else if (comp(variable, "MSC_PCRE_LIMITS_EXCEEDED")) { - t->m_variableMscPcreLimitsExceeded.evaluate(l); - } else if (comp(variable, "MULTIPART_CRLF_LF_LINES")) { - t->m_variableMultipartCrlfLFLines.evaluate(l); - } else if (comp(variable, "MULTIPART_DATA_AFTER")) { - t->m_variableMultipartDataAfter.evaluate(l); - } else if (comp(variable, "MULTIPART_FILE_LIMIT_EXCEEDED")) { - t->m_variableMultipartFileLimitExceeded.evaluate(l); - } else if (comp(variable, "MULTIPART_STRICT_ERROR")) { - t->m_variableMultipartStrictError.evaluate(l); - } else if (comp(variable, "MULTIPART_HEADER_FOLDING")) { - t->m_variableMultipartHeaderFolding.evaluate(l); - } else if (comp(variable, "MULTIPART_INVALID_QUOTING")) { - t->m_variableMultipartInvalidQuoting.evaluate(l); - } else if (comp(variable, "MULTIPART_INVALID_HEADER_FOLDING")) { - t->m_variableMultipartInvalidHeaderFolding.evaluate(l); - } else if (comp(variable, "MULTIPART_UNMATCHED_BOUNDARY")) { - t->m_variableMultipartUnmatchedBoundary.evaluate(l); - } else if (comp(variable, "OUTBOUND_DATA_ERROR")) { - t->m_variableOutboundDataError.evaluate(l); - } else if (comp(variable, "PATH_INFO")) { - t->m_variablePathInfo.evaluate(l); - } else if (comp(variable, "QUERY_STRING")) { - t->m_variableQueryString.evaluate(l); - } else if (comp(variable, "REMOTE_ADDR")) { - t->m_variableRemoteAddr.evaluate(l); - } else if (comp(variable, "REMOTE_HOST")) { - t->m_variableRemoteHost.evaluate(l); - } else if (comp(variable, "REMOTE_PORT")) { - t->m_variableRemotePort.evaluate(l); - } else if (comp(variable, "REQBODY_ERROR")) { - t->m_variableReqbodyError.evaluate(l); - } else if (comp(variable, "REQBODY_ERROR_MSG")) { - t->m_variableReqbodyErrorMsg.evaluate(l); - } else if (comp(variable, "REQBODY_PROCESSOR_ERROR_MSG")) { - t->m_variableReqbodyProcessorErrorMsg.evaluate(l); - } else if (comp(variable, "REQBODY_PROCESSOR_ERROR")) { - t->m_variableReqbodyProcessorError.evaluate(l); - } else if (comp(variable, "REQBODY_PROCESSOR")) { - t->m_variableReqbodyProcessor.evaluate(l); - } else if (comp(variable, "REQUEST_BASENAME")) { - t->m_variableRequestBasename.evaluate(l); - } else if (comp(variable, "REQUEST_BODY")) { - t->m_variableRequestBody.evaluate(l); - } else if (comp(variable, "REQUEST_BODY_LENGTH")) { - t->m_variableRequestBodyLength.evaluate(l); - } else if (comp(variable, "REQUEST_FILENAME")) { - t->m_variableRequestFilename.evaluate(l); - } else if (comp(variable, "REQUEST_LINE")) { - t->m_variableRequestLine.evaluate(l); - } else if (comp(variable, "REQUEST_METHOD")) { - t->m_variableRequestMethod.evaluate(l); - } else if (comp(variable, "REQUEST_PROTOCOL")) { - t->m_variableRequestProtocol.evaluate(l); - } else if (comp(variable, "REQUEST_URI")) { - t->m_variableRequestURI.evaluate(l); - } else if (comp(variable, "REQUEST_URI_RAW")) { - t->m_variableRequestURIRaw.evaluate(l); - } else if (comp(variable, "RESOURCE")) { - t->m_variableResource.evaluate(l); - } else if (comp(variable, "RESPONSE_BODY")) { - t->m_variableResponseBody.evaluate(l); - } else if (comp(variable, "RESPONSE_CONTENT_LENGTH")) { - t->m_variableResponseContentLength.evaluate(l); - } else if (comp(variable, "RESPONSE_PROTOCOL")) { - t->m_variableResponseProtocol.evaluate(l); - } else if (comp(variable, "RESPONSE_STATUS")) { - t->m_variableResponseStatus.evaluate(l); - } else if (comp(variable, "SERVER_ADDR")) { - t->m_variableServerAddr.evaluate(l); - } else if (comp(variable, "SERVER_NAME")) { - t->m_variableServerName.evaluate(l); - } else if (comp(variable, "SERVER_PORT")) { - t->m_variableServerPort.evaluate(l); - } else if (comp(variable, "SESSIONID")) { - t->m_variableSessionID.evaluate(l); - } else if (comp(variable, "UNIQUE_ID")) { - t->m_variableUniqueID.evaluate(l); - } else if (comp(variable, "URLENCODED_ERROR")) { - t->m_variableUrlEncodedError.evaluate(l); - } else if (comp(variable, "USERID")) { - t->m_variableUserID.evaluate(l); - } else { + bool matched = false; +#define VARIABLE_MONKEY_EVALUATE_DISPATCH(name, member) \ + if (matched == false && comp(variable, name)) { \ + t->member.evaluate(l); \ + matched = true; \ + } + VARIABLE_MONKEY_SIMPLE_VARIABLES(VARIABLE_MONKEY_EVALUATE_DISPATCH); +#undef VARIABLE_MONKEY_EVALUATE_DISPATCH + + if (matched == false) { throw std::invalid_argument("Variable not found."); } } @@ -389,126 +349,41 @@ class VariableMonkeyResolution { collection = variable.find(":"); } if (collection == std::string::npos) { - if (comp(variable, "RESPONSE_CONTENT_TYPE")) { - vv = t->m_variableResponseContentType.resolveFirst(); - } else if (comp(variable, "ARGS_COMBINED_SIZE")) { - vv = t->m_variableARGScombinedSize.resolveFirst(); - } else if (comp(variable, "AUTH_TYPE")) { - vv = t->m_variableAuthType.resolveFirst(); - } else if (comp(variable, "FILES_COMBINED_SIZE")) { - vv = t->m_variableFilesCombinedSize.resolveFirst(); - } else if (comp(variable, "FULL_REQUEST")) { - vv = t->m_variableFullRequest.resolveFirst(); - } else if (comp(variable, "FULL_REQUEST_LENGTH")) { - vv = t->m_variableFullRequestLength.resolveFirst(); - } else if (comp(variable, "INBOUND_DATA_ERROR")) { - vv = t->m_variableInboundDataError.resolveFirst(); - } else if (comp(variable, "MATCHED_VAR")) { - vv = t->m_variableMatchedVar.resolveFirst(); - } else if (comp(variable, "MATCHED_VAR_NAME")) { - vv = t->m_variableMatchedVarName.resolveFirst(); - } else if (comp(variable, "MSC_PCRE_ERROR")) { - vv = t->m_variableMscPcreError.resolveFirst(); - } else if (comp(variable, "MSC_PCRE_LIMITS_EXCEEDED")) { - vv = t->m_variableMscPcreLimitsExceeded.resolveFirst(); - } else if (comp(variable, "MULTIPART_CRLF_LF_LINES")) { - vv = t->m_variableMultipartCrlfLFLines.resolveFirst(); - } else if (comp(variable, "MULTIPART_DATA_AFTER")) { - vv = t->m_variableMultipartDataAfter.resolveFirst(); - } else if (comp(variable, "MULTIPART_FILE_LIMIT_EXCEEDED")) { - vv = t->m_variableMultipartFileLimitExceeded.resolveFirst(); - } else if (comp(variable, "MULTIPART_STRICT_ERROR")) { - vv = t->m_variableMultipartStrictError.resolveFirst(); - } else if (comp(variable, "MULTIPART_HEADER_FOLDING")) { - vv = t->m_variableMultipartHeaderFolding.resolveFirst(); - } else if (comp(variable, "MULTIPART_INVALID_QUOTING")) { - vv = t->m_variableMultipartInvalidQuoting.resolveFirst(); - } else if (comp(variable, "MULTIPART_INVALID_HEADER_FOLDING")) { - vv = t->m_variableMultipartInvalidHeaderFolding.resolveFirst(); - } else if (comp(variable, "MULTIPART_UNMATCHED_BOUNDARY")) { - vv = t->m_variableMultipartUnmatchedBoundary.resolveFirst(); - } else if (comp(variable, "OUTBOUND_DATA_ERROR")) { - vv = t->m_variableOutboundDataError.resolveFirst(); - } else if (comp(variable, "PATH_INFO")) { - vv = t->m_variablePathInfo.resolveFirst(); - } else if (comp(variable, "QUERY_STRING")) { - vv = t->m_variableQueryString.resolveFirst(); - } else if (comp(variable, "REMOTE_ADDR")) { - vv = t->m_variableRemoteAddr.resolveFirst(); - } else if (comp(variable, "REMOTE_HOST")) { - vv = t->m_variableRemoteHost.resolveFirst(); - } else if (comp(variable, "REMOTE_PORT")) { - vv = t->m_variableRemotePort.resolveFirst(); - } else if (comp(variable, "REQBODY_ERROR")) { - vv = t->m_variableReqbodyError.resolveFirst(); - } else if (comp(variable, "REQBODY_ERROR_MSG")) { - vv = t->m_variableReqbodyErrorMsg.resolveFirst(); - } else if (comp(variable, "REQBODY_PROCESSOR_ERROR_MSG")) { - vv = t->m_variableReqbodyProcessorErrorMsg.resolveFirst(); - } else if (comp(variable, "REQBODY_PROCESSOR_ERROR")) { - vv = t->m_variableReqbodyProcessorError.resolveFirst(); - } else if (comp(variable, "REQBODY_PROCESSOR")) { - vv = t->m_variableReqbodyProcessor.resolveFirst(); - } else if (comp(variable, "REQUEST_BASENAME")) { - vv = t->m_variableRequestBasename.resolveFirst(); - } else if (comp(variable, "REQUEST_BODY")) { - vv = t->m_variableRequestBody.resolveFirst(); - } else if (comp(variable, "REQUEST_BODY_LENGTH")) { - vv = t->m_variableRequestBodyLength.resolveFirst(); - } else if (comp(variable, "REQUEST_FILENAME")) { - vv = t->m_variableRequestFilename.resolveFirst(); - } else if (comp(variable, "REQUEST_LINE")) { - vv = t->m_variableRequestLine.resolveFirst(); - } else if (comp(variable, "REQUEST_METHOD")) { - vv = t->m_variableRequestMethod.resolveFirst(); - } else if (comp(variable, "REQUEST_PROTOCOL")) { - vv = t->m_variableRequestProtocol.resolveFirst(); - } else if (comp(variable, "REQUEST_URI")) { - vv = t->m_variableRequestURI.resolveFirst(); - } else if (comp(variable, "REQUEST_URI_RAW")) { - vv = t->m_variableRequestURIRaw.resolveFirst(); - } else if (comp(variable, "RESOURCE")) { - vv = t->m_variableResource.resolveFirst(); - } else if (comp(variable, "RESPONSE_BODY")) { - vv = t->m_variableResponseBody.resolveFirst(); - } else if (comp(variable, "RESPONSE_CONTENT_LENGTH")) { - vv = t->m_variableResponseContentLength.resolveFirst(); - } else if (comp(variable, "RESPONSE_PROTOCOL")) { - vv = t->m_variableResponseProtocol.resolveFirst(); - } else if (comp(variable, "RESPONSE_STATUS")) { - vv = t->m_variableResponseStatus.resolveFirst(); - } else if (comp(variable, "SERVER_ADDR")) { - vv = t->m_variableServerAddr.resolveFirst(); - } else if (comp(variable, "SERVER_NAME")) { - vv = t->m_variableServerName.resolveFirst(); - } else if (comp(variable, "SERVER_PORT")) { - vv = t->m_variableServerPort.resolveFirst(); - } else if (comp(variable, "SESSIONID")) { - vv = t->m_variableSessionID.resolveFirst(); - } else if (comp(variable, "UNIQUE_ID")) { - vv = t->m_variableUniqueID.resolveFirst(); - } else if (comp(variable, "URLENCODED_ERROR")) { - vv = t->m_variableUrlEncodedError.resolveFirst(); - } else if (comp(variable, "USERID")) { - vv = t->m_variableUserID.resolveFirst(); - } else if (comp(variable, "TX")) { + bool matched = false; +#define VARIABLE_MONKEY_RESOLVE_DISPATCH(name, member) \ + if (matched == false && comp(variable, name)) { \ + vv = t->member.resolveFirst(); \ + matched = true; \ + } + VARIABLE_MONKEY_SIMPLE_VARIABLES(VARIABLE_MONKEY_RESOLVE_DISPATCH); +#undef VARIABLE_MONKEY_RESOLVE_DISPATCH + + if (matched == false && comp(variable, "TX")) { vv = t->m_collections.m_tx_collection->resolveFirst(""); - } else if (comp(variable, "RESOURCE")) { + matched = true; + } else if (matched == false && comp(variable, "RESOURCE")) { vv = t->m_collections.m_resource_collection->resolveFirst("", t->m_collections.m_resource_collection_key, t->m_rules->m_secWebAppId.m_value); - } else if (comp(variable, "USER")) { + matched = true; + } else if (matched == false && comp(variable, "USER")) { vv = t->m_collections.m_user_collection->resolveFirst("", t->m_collections.m_user_collection_key, t->m_rules->m_secWebAppId.m_value); - } else if (comp(variable, "SESSION")) { + matched = true; + } else if (matched == false && comp(variable, "SESSION")) { vv = t->m_collections.m_session_collection->resolveFirst("", t->m_collections.m_session_collection_key, t->m_rules->m_secWebAppId.m_value); - } else if (comp(variable, "IP")) { + matched = true; + } else if (matched == false && comp(variable, "IP")) { vv = t->m_collections.m_ip_collection->resolveFirst("", t->m_collections.m_ip_collection_key, t->m_rules->m_secWebAppId.m_value); - } else if (comp(variable, "GLOBAL")) { + matched = true; + } else if (matched == false && comp(variable, "GLOBAL")) { vv = t->m_collections.m_global_collection->resolveFirst("", t->m_collections.m_global_collection_key, t->m_rules->m_secWebAppId.m_value); - } else { + matched = true; + } + + if (matched == false) { throw std::invalid_argument("Variable not found."); } } else { @@ -729,4 +604,6 @@ std::string operator+(const std::string &a, const modsecurity::variables::Variab } // namespace variables } // namespace modsecurity +#undef VARIABLE_MONKEY_SIMPLE_VARIABLES + #endif // SRC_VARIABLES_VARIABLE_H_ diff --git a/test/Makefile.am b/test/Makefile.am index ecb54d2f57..e9881375ef 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -23,7 +23,8 @@ noinst_PROGRAMS = EXTRA_DIST = \ test-cases/* \ custom-test-driver \ - test-suite.sh + test-suite.sh \ + run-json-backend-matrix.sh # unit_tests diff --git a/test/benchmark/Makefile.am b/test/benchmark/Makefile.am index 3b7f92a443..a7f681484b 100644 --- a/test/benchmark/Makefile.am +++ b/test/benchmark/Makefile.am @@ -1,10 +1,22 @@ -noinst_PROGRAMS = benchmark +noinst_PROGRAMS = \ + benchmark \ + json_benchmark + +EXTRA_DIST = \ + basic_rules.conf \ + json_benchmark_rules.conf \ + run-json-benchmarks.sh \ + download-owasp-v3-rules.sh \ + download-owasp-v4-rules.sh benchmark_SOURCES = \ benchmark.cc +json_benchmark_SOURCES = \ + json_benchmark.cc + benchmark_LDADD = \ $(CURL_LDADD) \ $(GEOIP_LDADD) \ @@ -31,6 +43,8 @@ benchmark_LDFLAGS = \ $(LUA_LDFLAGS) benchmark_CPPFLAGS = \ + -I$(top_builddir) \ + -I$(top_srcdir) \ -I$(top_srcdir)/headers \ $(GLOBAL_CPPFLAGS) \ $(PCRE_CFLAGS) \ @@ -38,5 +52,15 @@ benchmark_CPPFLAGS = \ $(LMDB_CFLAGS) \ $(LIBXML2_CFLAGS) +json_benchmark_LDADD = \ + $(benchmark_LDADD) + +json_benchmark_LDFLAGS = \ + $(benchmark_LDFLAGS) + +json_benchmark_CPPFLAGS = \ + $(benchmark_CPPFLAGS) \ + -DMSC_JSON_BENCHMARK_RULES_DIR=\"$(srcdir)\" + MAINTAINERCLEANFILES = \ Makefile.in diff --git a/test/benchmark/json_benchmark.cc b/test/benchmark/json_benchmark.cc new file mode 100644 index 0000000000..ed6dedb2ec --- /dev/null +++ b/test/benchmark/json_benchmark.cc @@ -0,0 +1,495 @@ +/* + * ModSecurity, http://www.modsecurity.org/ + * Copyright (c) 2015 - 2024 Trustwave Holdings, Inc. (http://www.trustwave.com/) + * + * You may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * If any of the files related to licensing are missing or if you have any + * other questions related to licensing please contact Trustwave Holdings, Inc. + * directly using the email address security@modsecurity.org. + * + */ + +#include "config.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "modsecurity/modsecurity.h" +#include "modsecurity/rules_set.h" +#include "modsecurity/transaction.h" +#include "src/request_body_processor/json_instrumentation.h" + +#ifndef MSC_JSON_BENCHMARK_RULES_DIR +#error "MSC_JSON_BENCHMARK_RULES_DIR must be defined by the build system." +#endif + +namespace { + +using Clock = std::chrono::steady_clock; + +constexpr std::size_t kDefaultTargetBytes = 1048576; +constexpr std::size_t kDefaultDepth = 512; +constexpr unsigned long long kDefaultIterations = 100; +constexpr const char *kRulesFileName = "json_benchmark_rules.conf"; + +struct Options { + std::string scenario; + unsigned long long iterations{kDefaultIterations}; + std::size_t target_bytes{kDefaultTargetBytes}; + std::size_t depth{kDefaultDepth}; + bool include_invalid{false}; + bool output_json{false}; +}; + +struct Metrics { + std::uint64_t append_request_body_ns{0}; + std::uint64_t process_request_body_ns{0}; + std::uint64_t total_transaction_ns{0}; + unsigned long long parse_success_count{0}; + unsigned long long parse_error_count{0}; +}; + +const char *usage_message = + "Usage: json_benchmark --scenario NAME [--iterations N] " + "[--target-bytes N] [--depth N] [--include-invalid] [--output json]"; + +std::string benchmarkBackend() { +#if defined(MSC_JSON_BACKEND_SIMDJSON) + return "simdjson"; +#elif defined(MSC_JSON_BACKEND_JSONCONS) + return "jsoncons"; +#else +#error "A JSON backend must be selected at build time." +#endif +} + +std::string rulesFilePath() { + return std::string(MSC_JSON_BENCHMARK_RULES_DIR) + "/" + kRulesFileName; +} + +std::uint64_t elapsedNanos(Clock::time_point start_time) { + return static_cast( + std::chrono::duration_cast( + Clock::now() - start_time).count()); +} + +std::size_t parseSize(const char *value, const char *flag_name) { + errno = 0; + char *end = nullptr; + const unsigned long long parsed = std::strtoull(value, &end, 10); + if (errno != 0 || end == value || *end != '\0') { + throw std::runtime_error(std::string("invalid numeric value for ") + + flag_name + ": " + value); + } + if (parsed > std::numeric_limits::max()) { + throw std::runtime_error(std::string("value too large for ") + + flag_name + ": " + value); + } + return static_cast(parsed); +} + +unsigned long long parseIterations(const char *value) { + errno = 0; + char *end = nullptr; + const unsigned long long parsed = std::strtoull(value, &end, 10); + if (errno != 0 || end == value || *end != '\0' || parsed == 0) { + throw std::runtime_error(std::string("invalid numeric value for --iterations: ") + + value); + } + return parsed; +} + +Options parseOptions(int argc, const char *argv[]) { + Options options; + + for (int i = 1; i < argc; i++) { + const std::string current(argv[i]); + if (current == "-h" || current == "-?" || current == "--help") { + std::cout << usage_message << std::endl; + std::exit(0); + } else if (current == "--scenario") { + if (i + 1 >= argc) { + throw std::runtime_error("missing value for --scenario"); + } + options.scenario.assign(argv[++i]); + } else if (current == "--iterations") { + if (i + 1 >= argc) { + throw std::runtime_error("missing value for --iterations"); + } + options.iterations = parseIterations(argv[++i]); + } else if (current == "--target-bytes") { + if (i + 1 >= argc) { + throw std::runtime_error("missing value for --target-bytes"); + } + options.target_bytes = parseSize(argv[++i], "--target-bytes"); + } else if (current == "--depth") { + if (i + 1 >= argc) { + throw std::runtime_error("missing value for --depth"); + } + options.depth = parseSize(argv[++i], "--depth"); + } else if (current == "--include-invalid") { + options.include_invalid = true; + } else if (current == "--output") { + if (i + 1 >= argc) { + throw std::runtime_error("missing value for --output"); + } + const std::string output_format(argv[++i]); + if (output_format != "json") { + throw std::runtime_error("unsupported output format: " + + output_format); + } + options.output_json = true; + } else { + throw std::runtime_error("unknown option: " + current); + } + } + + if (options.scenario.empty()) { + throw std::runtime_error("missing required --scenario"); + } + + const bool is_invalid_scenario = options.scenario == "truncated" + || options.scenario == "malformed"; + if (is_invalid_scenario && !options.include_invalid) { + throw std::runtime_error( + "invalid JSON scenarios require --include-invalid"); + } + + return options; +} + +std::string makeLargeObject(std::size_t target_bytes) { + std::string body("{"); + std::size_t index = 0; + + while (body.size() + 32 < target_bytes || index == 0) { + if (index > 0) { + body.push_back(','); + } + body += "\"key"; + body += std::to_string(index); + body += "\":\"value"; + body += std::to_string(index); + body += "\""; + index++; + } + + body.push_back('}'); + return body; +} + +std::string makeUtf8Object(std::size_t target_bytes) { + static const char *const utf8_values[] = { + u8"Gr\u00fc\u00dfe", + u8"\u3053\u3093\u306b\u3061\u306f", + u8"\u043f\u0440\u0438\u0432\u0435\u0442", + u8"\u0645\u0631\u062d\u0628\u0627", + u8"\U0001F30D" + }; + + std::string body("{"); + std::size_t index = 0; + + while (body.size() + 48 < target_bytes || index == 0) { + if (index > 0) { + body.push_back(','); + } + body += "\"utf8_"; + body += std::to_string(index); + body += "\":\""; + body += utf8_values[index % (sizeof(utf8_values) / sizeof(utf8_values[0]))]; + body += "\""; + index++; + } + + body.push_back('}'); + return body; +} + +std::string makeNumbersArray(std::size_t target_bytes) { + static const char *const numeric_tokens[] = { + "0", + "-0", + "1.0", + "1e3", + "-1.25e-4", + "123456789012345678901234567890", + "6.02214076e23", + "3.141592653589793238462643383279" + }; + + std::string body("["); + std::size_t index = 0; + + while (body.size() + 40 < target_bytes || index == 0) { + if (index > 0) { + body.push_back(','); + } + body += numeric_tokens[index + % (sizeof(numeric_tokens) / sizeof(numeric_tokens[0]))]; + index++; + } + + body.push_back(']'); + return body; +} + +std::string makeDeepNesting(std::size_t depth) { + std::string body; + + for (std::size_t i = 0; i < depth; i++) { + if ((i % 2) == 0) { + body += "{\"k\":"; + } else { + body.push_back('['); + } + } + + body += "\"leaf\""; + + for (std::size_t i = depth; i > 0; i--) { + if (((i - 1) % 2) == 0) { + body.push_back('}'); + } else { + body.push_back(']'); + } + } + + return body; +} + +std::string buildScenarioBody(const Options &options) { + if (options.scenario == "large-object") { + return makeLargeObject(options.target_bytes); + } + if (options.scenario == "deep-nesting") { + return makeDeepNesting(options.depth); + } + if (options.scenario == "numbers") { + return makeNumbersArray(options.target_bytes); + } + if (options.scenario == "utf8") { + return makeUtf8Object(options.target_bytes); + } + if (options.scenario == "truncated") { + std::string body = makeLargeObject(options.target_bytes); + body.pop_back(); + return body; + } + if (options.scenario == "malformed") { + std::string body = makeLargeObject(options.target_bytes); + body.insert(body.size() - 1, ",]"); + return body; + } + + throw std::runtime_error("unsupported scenario: " + options.scenario); +} + +bool isResolvedZero(const std::unique_ptr &value) { + return value && *value == "0"; +} + +Metrics runBenchmark(modsecurity::ModSecurity *modsec, + modsecurity::RulesSet *rules, const std::string &body, + const Options &options) { + Metrics metrics; + + for (unsigned long long iteration = 0; iteration < options.iterations; + iteration++) { + const auto total_start = Clock::now(); + modsecurity::Transaction transaction(modsec, rules, nullptr); + transaction.processConnection("200.249.12.31", 12345, + "127.0.0.1", 80); + transaction.processURI("/json-benchmark", "POST", "1.1"); + transaction.addRequestHeader("Host", "localhost"); + transaction.addRequestHeader("User-Agent", + "ModSecurity-json-benchmark/1.0"); + transaction.addRequestHeader("Content-Type", "application/json"); + const std::string content_length = std::to_string(body.size()); + transaction.addRequestHeader("Content-Length", content_length.c_str()); + transaction.processRequestHeaders(); + + const auto append_start = Clock::now(); + const int append_ok = transaction.appendRequestBody( + reinterpret_cast(body.data()), body.size()); + metrics.append_request_body_ns += elapsedNanos(append_start); + if (append_ok == 0) { + throw std::runtime_error( + "appendRequestBody reported partial body processing"); + } + + const auto process_start = Clock::now(); + if (!transaction.processRequestBody()) { + throw std::runtime_error("processRequestBody returned false"); + } + metrics.process_request_body_ns += elapsedNanos(process_start); + metrics.total_transaction_ns += elapsedNanos(total_start); + + const std::unique_ptr reqbody_error = + transaction.m_variableReqbodyError.resolveFirst(); + const std::unique_ptr processor_error = + transaction.m_variableReqbodyProcessorError.resolveFirst(); + + if (!reqbody_error || !processor_error) { + throw std::runtime_error( + "unable to resolve JSON parse outcome variables"); + } + + const bool parse_success = isResolvedZero(reqbody_error) + && isResolvedZero(processor_error); + const bool parse_error = !isResolvedZero(reqbody_error) + || !isResolvedZero(processor_error); + + if (parse_success == parse_error) { + throw std::runtime_error( + "ambiguous JSON parse outcome observed in benchmark"); + } + + if (parse_success) { + metrics.parse_success_count++; + } else { + metrics.parse_error_count++; + } + } + + return metrics; +} + +long currentMaxRssKb() { + struct rusage usage; + if (getrusage(RUSAGE_SELF, &usage) != 0) { + return -1; + } + return usage.ru_maxrss; +} + +void printJson(const Options &options, const std::string &body, + const Metrics &metrics) { + std::cout << "{"; + std::cout << "\"backend\":\"" << benchmarkBackend() << "\","; + std::cout << "\"scenario\":\"" << options.scenario << "\","; + std::cout << "\"iterations\":" << options.iterations << ","; + std::cout << "\"body_bytes\":" << body.size() << ","; + std::cout << "\"append_request_body_ns\":" + << metrics.append_request_body_ns << ","; + std::cout << "\"process_request_body_ns\":" + << metrics.process_request_body_ns << ","; + std::cout << "\"total_transaction_ns\":" + << metrics.total_transaction_ns << ","; + std::cout << "\"parse_success_count\":" + << metrics.parse_success_count << ","; + std::cout << "\"parse_error_count\":" + << metrics.parse_error_count << ","; + std::cout << "\"ru_maxrss_kb\":" << currentMaxRssKb(); +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + const modsecurity::RequestBodyProcessor::JsonInstrumentationMetrics + instrumentation = + modsecurity::RequestBodyProcessor::jsonInstrumentationSnapshot(); + std::cout << ",\"request_body_snapshot_count\":" + << instrumentation.request_body_snapshot_count; + std::cout << ",\"request_body_snapshot_bytes\":" + << instrumentation.request_body_snapshot_bytes; + std::cout << ",\"request_body_snapshot_ns\":" + << instrumentation.request_body_snapshot_ns; + std::cout << ",\"json_process_chunk_calls\":" + << instrumentation.json_process_chunk_calls; + std::cout << ",\"json_process_chunk_appended_bytes\":" + << instrumentation.json_process_chunk_appended_bytes; + std::cout << ",\"json_process_chunk_ns\":" + << instrumentation.json_process_chunk_ns; + std::cout << ",\"simdjson_parser_constructions\":" + << instrumentation.simdjson_parser_constructions; + std::cout << ",\"simdjson_parser_construction_ns\":" + << instrumentation.simdjson_parser_construction_ns; + std::cout << ",\"simdjson_padded_copy_bytes\":" + << instrumentation.simdjson_padded_copy_bytes; + std::cout << ",\"simdjson_padded_copy_ns\":" + << instrumentation.simdjson_padded_copy_ns; + std::cout << ",\"simdjson_iterate_ns\":" + << instrumentation.simdjson_iterate_ns; + std::cout << ",\"jsoncons_cursor_constructions\":" + << instrumentation.jsoncons_cursor_constructions; + std::cout << ",\"jsoncons_cursor_init_ns\":" + << instrumentation.jsoncons_cursor_init_ns; + std::cout << ",\"jsoncons_token_cursor_constructions\":" + << instrumentation.jsoncons_token_cursor_constructions; + std::cout << ",\"jsoncons_token_cursor_init_ns\":" + << instrumentation.jsoncons_token_cursor_init_ns; + std::cout << ",\"jsoncons_event_loop_ns\":" + << instrumentation.jsoncons_event_loop_ns; + std::cout << ",\"jsoncons_token_sync_steps\":" + << instrumentation.jsoncons_token_sync_steps; +#endif + std::cout << "}" << std::endl; +} + +void printHumanReadable(const Options &options, const std::string &body, + const Metrics &metrics) { + std::cout << "backend: " << benchmarkBackend() << "\n"; + std::cout << "scenario: " << options.scenario << "\n"; + std::cout << "iterations: " << options.iterations << "\n"; + std::cout << "body_bytes: " << body.size() << "\n"; + std::cout << "append_request_body_ns: " + << metrics.append_request_body_ns << "\n"; + std::cout << "process_request_body_ns: " + << metrics.process_request_body_ns << "\n"; + std::cout << "total_transaction_ns: " + << metrics.total_transaction_ns << "\n"; + std::cout << "parse_success_count: " + << metrics.parse_success_count << "\n"; + std::cout << "parse_error_count: " + << metrics.parse_error_count << "\n"; + std::cout << "ru_maxrss_kb: " << currentMaxRssKb() << "\n"; +} + +} // namespace + +int main(int argc, const char *argv[]) { + try { + const Options options = parseOptions(argc, argv); + const std::string body = buildScenarioBody(options); + + modsecurity::ModSecurity modsec; + modsec.setConnectorInformation( + "ModSecurity-json-benchmark v0.0.1-alpha"); + + modsecurity::RulesSet rules; + const std::string rules_path = rulesFilePath(); + if (rules.loadFromUri(rules_path.c_str()) < 0) { + std::cerr << "failed to load benchmark rules from " + << rules_path << std::endl; + std::cerr << rules.m_parserError.str() << std::endl; + return 1; + } + + modsecurity::RequestBodyProcessor::jsonInstrumentationReset(); + const Metrics metrics = runBenchmark(&modsec, &rules, body, options); + + if (options.output_json) { + printJson(options, body, metrics); + } else { + printHumanReadable(options, body, metrics); + } + return 0; + } catch (const std::exception &error) { + std::cerr << error.what() << std::endl; + std::cerr << usage_message << std::endl; + return 64; + } +} diff --git a/test/benchmark/json_benchmark_rules.conf b/test/benchmark/json_benchmark_rules.conf new file mode 100644 index 0000000000..5e13a15705 --- /dev/null +++ b/test/benchmark/json_benchmark_rules.conf @@ -0,0 +1,9 @@ +SecRuleEngine On +SecRequestBodyAccess On +SecAuditEngine Off +SecDebugLog /dev/null +SecDebugLogLevel 0 +SecRequestBodyLimit 8388608 +SecRequestBodyNoFilesLimit 8388608 +SecRequestBodyJsonDepthLimit 4096 +SecRule REQUEST_HEADERS:Content-Type "^application/json$" "id:901001,phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON" diff --git a/test/benchmark/run-json-benchmarks.sh b/test/benchmark/run-json-benchmarks.sh new file mode 100755 index 0000000000..779b7c3c5b --- /dev/null +++ b/test/benchmark/run-json-benchmarks.sh @@ -0,0 +1,83 @@ +#!/usr/bin/env bash + +set -u + +usage() { + cat <<'EOF' +Usage: test/benchmark/run-json-benchmarks.sh --simdjson-build DIR --jsoncons-build DIR [--include-invalid] +EOF +} + +simdjson_build="" +jsoncons_build="" +include_invalid=0 +output_file="${PWD}/json-benchmark-results.jsonl" + +while [ "$#" -gt 0 ]; do + case "$1" in + --simdjson-build) + shift + [ "$#" -gt 0 ] || { usage; exit 64; } + simdjson_build="$1" + ;; + --jsoncons-build) + shift + [ "$#" -gt 0 ] || { usage; exit 64; } + jsoncons_build="$1" + ;; + --include-invalid) + include_invalid=1 + ;; + -h|--help) + usage + exit 0 + ;; + *) + usage + exit 64 + ;; + esac + shift +done + +[ -n "${simdjson_build}" ] || { usage; exit 64; } +[ -n "${jsoncons_build}" ] || { usage; exit 64; } + +readonly base_scenarios=( + "large-object" + "deep-nesting" + "numbers" + "utf8" +) + +readonly invalid_scenarios=( + "truncated" + "malformed" +) + +run_scenarios() { + local build_dir="$1" + local binary="${build_dir}/test/benchmark/json_benchmark" + local scenario + + if [ ! -x "${binary}" ]; then + echo "missing benchmark binary: ${binary}" >&2 + return 1 + fi + + for scenario in "${base_scenarios[@]}"; do + "${binary}" --scenario "${scenario}" --output json >> "${output_file}" + done + + if [ "${include_invalid}" -ne 0 ]; then + for scenario in "${invalid_scenarios[@]}"; do + "${binary}" --scenario "${scenario}" --include-invalid --output json >> "${output_file}" + done + fi +} + +: > "${output_file}" +run_scenarios "${simdjson_build}" || exit 1 +run_scenarios "${jsoncons_build}" || exit 1 + +printf 'Wrote %s\n' "${output_file}" diff --git a/test/run-json-backend-matrix.sh b/test/run-json-backend-matrix.sh new file mode 100755 index 0000000000..e437461cac --- /dev/null +++ b/test/run-json-backend-matrix.sh @@ -0,0 +1,196 @@ +#!/usr/bin/env bash + +set -u + +usage() { + cat <<'EOF' +Usage: test/run-json-backend-matrix.sh [--build-root DIR] [--jobs N] [--configure-extra "ARGS"] [--keep-build-dirs] + +Exit codes: + 0 success + 10 configure failure + 11 build failure + 12 test failure + 13 backend result difference + 64 invalid usage +EOF +} + +repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +build_root="${repo_root}/build-json-backend-matrix" +jobs="$(getconf _NPROCESSORS_ONLN 2>/dev/null || printf '1')" +configure_extra="" +keep_build_dirs=0 + +while [ "$#" -gt 0 ]; do + case "$1" in + --build-root) + shift + [ "$#" -gt 0 ] || { usage; exit 64; } + build_root="$1" + ;; + --jobs) + shift + [ "$#" -gt 0 ] || { usage; exit 64; } + jobs="$1" + ;; + --configure-extra) + shift + [ "$#" -gt 0 ] || { usage; exit 64; } + configure_extra="$1" + ;; + --keep-build-dirs) + keep_build_dirs=1 + ;; + -h|--help) + usage + exit 0 + ;; + *) + usage + exit 64 + ;; + esac + shift +done + +declare -a configure_extra_args=() +if [ -n "${configure_extra}" ]; then + read -r -a configure_extra_args <<< "${configure_extra}" +fi + +readonly test_files=( + "test/test-cases/regression/request-body-parser-json.json" + "test/test-cases/regression/request-body-parser-json-backend-edgecases.json" +) + +mkdir -p "${build_root}/logs" + +extract_summary() { + local backend="$1" + local input_log="$2" + local output_tsv="$3" + + awk -v backend="${backend}" ' + match($0, /^:test-result:[[:space:]]+([^[:space:]]+)[[:space:]]+([^:]+):(.*)$/, m) { + print backend "\t" m[2] "\t" m[3] "\t" m[1]; + } + ' "${input_log}" > "${output_tsv}" +} + +run_backend() { + local backend="$1" + local build_dir="${build_root}/${backend}" + local raw_log="${build_root}/logs/${backend}.log" + local summary_file="${build_root}/logs/${backend}.summary.tsv" + local configure_status=0 + local build_status=0 + local test_status=0 + + if [ "${keep_build_dirs}" -eq 0 ]; then + rm -rf "${build_dir}" + fi + mkdir -p "${build_dir}" + : > "${raw_log}" + + ( + cd "${build_dir}" && \ + "${repo_root}/configure" \ + --with-json-backend="${backend}" \ + "${configure_extra_args[@]}" + ) >> "${raw_log}" 2>&1 + configure_status=$? + if [ "${configure_status}" -ne 0 ]; then + return 10 + fi + + ( + cd "${build_dir}" && \ + make -j "${jobs}" -C others + ) >> "${raw_log}" 2>&1 + build_status=$? + if [ "${build_status}" -ne 0 ]; then + return 11 + fi + + ( + cd "${build_dir}" && \ + make -j "${jobs}" -C src libmodsecurity.la + ) >> "${raw_log}" 2>&1 + build_status=$? + if [ "${build_status}" -ne 0 ]; then + return 11 + fi + + ( + cd "${build_dir}" && \ + make -j "${jobs}" -C test regression_tests + ) >> "${raw_log}" 2>&1 + build_status=$? + if [ "${build_status}" -ne 0 ]; then + return 11 + fi + + for test_file in "${test_files[@]}"; do + ( + cd "${build_dir}/test" && \ + ./regression_tests automake "${repo_root}/${test_file}" + ) >> "${raw_log}" 2>&1 + if [ "$?" -ne 0 ]; then + test_status=1 + fi + done + + extract_summary "${backend}" "${raw_log}" "${summary_file}" + if [ ! -s "${summary_file}" ]; then + test_status=1 + fi + if awk -F '\t' '$4 != "PASS" {exit 1}' "${summary_file}"; then + : + else + test_status=1 + fi + + if [ "${test_status}" -ne 0 ]; then + return 12 + fi + return 0 +} + +backend_test_failure=0 +for backend in simdjson jsoncons; do + run_backend "${backend}" + status=$? + case "${status}" in + 0) + ;; + 10|11) + exit "${status}" + ;; + 12) + backend_test_failure=1 + ;; + *) + exit "${status}" + ;; + esac +done + +cat "${build_root}/logs/simdjson.summary.tsv" \ + "${build_root}/logs/jsoncons.summary.tsv" \ + > "${build_root}/summary.tsv" + +if diff -u \ + <(cut -f 2- "${build_root}/logs/simdjson.summary.tsv" | sort) \ + <(cut -f 2- "${build_root}/logs/jsoncons.summary.tsv" | sort) \ + > "${build_root}/logs/backend-diff.log"; then + : +else + exit 13 +fi + +if [ "${backend_test_failure}" -ne 0 ]; then + exit 12 +fi + +exit 0 From ec9dce9afcf45440731e9496cce69d6875abb22d Mon Sep 17 00:00:00 2001 From: Jens Date: Sun, 12 Apr 2026 12:29:07 +0200 Subject: [PATCH 08/17] add build ordner --- build/.empty | 0 build/ax_cxx_compile_stdcxx.m4 | 1018 ++++++++++++++++++++++ build/ax_prog_doxygen.m4 | 533 +++++++++++ build/ax_valgrind_check.m4 | 236 +++++ build/curl.m4 | 36 + build/libgeoip.m4 | 12 + build/libmaxmind.m4 | 12 + build/libxml.m4 | 12 + build/lmdb.m4 | 29 + build/lua.m4 | 98 +++ build/msc_find_lib.m4 | 266 ++++++ build/pcre.m4 | 50 ++ build/pcre2.m4 | 13 + build/release.sh | 21 + build/ssdeep.m4 | 11 + build/win32/CMakeLists.txt | 293 +++++++ build/win32/ConfigureChecks.cmake | 18 + build/win32/README.md | 112 +++ build/win32/conanfile.txt | 13 + build/win32/config.h.cmake | 95 ++ build/win32/docker/Dockerfile | 115 +++ build/win32/docker/InstallBuildTools.cmd | 17 + build/win32/docker/git.inf | 20 + 23 files changed, 3030 insertions(+) create mode 100644 build/.empty create mode 100644 build/ax_cxx_compile_stdcxx.m4 create mode 100644 build/ax_prog_doxygen.m4 create mode 100644 build/ax_valgrind_check.m4 create mode 100644 build/curl.m4 create mode 100644 build/libgeoip.m4 create mode 100644 build/libmaxmind.m4 create mode 100644 build/libxml.m4 create mode 100644 build/lmdb.m4 create mode 100644 build/lua.m4 create mode 100644 build/msc_find_lib.m4 create mode 100644 build/pcre.m4 create mode 100644 build/pcre2.m4 create mode 100644 build/release.sh create mode 100644 build/ssdeep.m4 create mode 100644 build/win32/CMakeLists.txt create mode 100644 build/win32/ConfigureChecks.cmake create mode 100644 build/win32/README.md create mode 100644 build/win32/conanfile.txt create mode 100644 build/win32/config.h.cmake create mode 100644 build/win32/docker/Dockerfile create mode 100644 build/win32/docker/InstallBuildTools.cmd create mode 100644 build/win32/docker/git.inf diff --git a/build/.empty b/build/.empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/build/ax_cxx_compile_stdcxx.m4 b/build/ax_cxx_compile_stdcxx.m4 new file mode 100644 index 0000000000..8edf5152ec --- /dev/null +++ b/build/ax_cxx_compile_stdcxx.m4 @@ -0,0 +1,1018 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional]) +# +# DESCRIPTION +# +# Check for baseline language coverage in the compiler for the specified +# version of the C++ standard. If necessary, add switches to CXX and +# CXXCPP to enable support. VERSION may be '11', '14', '17', or '20' for +# the respective C++ standard version. +# +# The second argument, if specified, indicates whether you insist on an +# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. +# -std=c++11). If neither is specified, you get whatever works, with +# preference for no added switch, and then for an extended mode. +# +# The third argument, if specified 'mandatory' or if left unspecified, +# indicates that baseline support for the specified C++ standard is +# required and that the macro should error out if no mode with that +# support is found. If specified 'optional', then configuration proceeds +# regardless, after defining HAVE_CXX${VERSION} if and only if a +# supporting mode is found. +# +# LICENSE +# +# Copyright (c) 2008 Benjamin Kosnik +# Copyright (c) 2012 Zack Weinberg +# Copyright (c) 2013 Roy Stogner +# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov +# Copyright (c) 2015 Paul Norman +# Copyright (c) 2015 Moritz Klammler +# Copyright (c) 2016, 2018 Krzesimir Nowak +# Copyright (c) 2019 Enji Cooper +# Copyright (c) 2020 Jason Merrill +# Copyright (c) 2021 Jörn Heusipp +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 18 + +dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro +dnl (serial version number 13). + +AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl + m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"], + [$1], [14], [ax_cxx_compile_alternatives="14 1y"], + [$1], [17], [ax_cxx_compile_alternatives="17 1z"], + [$1], [20], [ax_cxx_compile_alternatives="20"], + [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl + m4_if([$2], [], [], + [$2], [ext], [], + [$2], [noext], [], + [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl + m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true], + [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true], + [$3], [optional], [ax_cxx_compile_cxx$1_required=false], + [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) + AC_LANG_PUSH([C++])dnl + ac_success=no + + m4_if([$2], [], [dnl + AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, + ax_cv_cxx_compile_cxx$1, + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], + [ax_cv_cxx_compile_cxx$1=yes], + [ax_cv_cxx_compile_cxx$1=no])]) + if test x$ax_cv_cxx_compile_cxx$1 = xyes; then + ac_success=yes + fi]) + + m4_if([$2], [noext], [], [dnl + if test x$ac_success = xno; then + for alternative in ${ax_cxx_compile_alternatives}; do + switch="-std=gnu++${alternative}" + cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) + AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, + $cachevar, + [ac_save_CXX="$CXX" + CXX="$CXX $switch" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], + [eval $cachevar=yes], + [eval $cachevar=no]) + CXX="$ac_save_CXX"]) + if eval test x\$$cachevar = xyes; then + CXX="$CXX $switch" + if test -n "$CXXCPP" ; then + CXXCPP="$CXXCPP $switch" + fi + ac_success=yes + break + fi + done + fi]) + + m4_if([$2], [ext], [], [dnl + if test x$ac_success = xno; then + dnl HP's aCC needs +std=c++11 according to: + dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf + dnl Cray's crayCC needs "-h std=c++11" + dnl MSVC needs -std:c++NN for C++17 and later (default is C++14) + for alternative in ${ax_cxx_compile_alternatives}; do + for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}" MSVC; do + if test x"$switch" = xMSVC; then + dnl AS_TR_SH maps both `:` and `=` to `_` so -std:c++17 would collide + dnl with -std=c++17. We suffix the cache variable name with _MSVC to + dnl avoid this. + switch=-std:c++${alternative} + cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_${switch}_MSVC]) + else + cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch]) + fi + AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch, + $cachevar, + [ac_save_CXX="$CXX" + CXX="$CXX $switch" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], + [eval $cachevar=yes], + [eval $cachevar=no]) + CXX="$ac_save_CXX"]) + if eval test x\$$cachevar = xyes; then + CXX="$CXX $switch" + if test -n "$CXXCPP" ; then + CXXCPP="$CXXCPP $switch" + fi + ac_success=yes + break + fi + done + if test x$ac_success = xyes; then + break + fi + done + fi]) + AC_LANG_POP([C++]) + if test x$ax_cxx_compile_cxx$1_required = xtrue; then + if test x$ac_success = xno; then + AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.]) + fi + fi + if test x$ac_success = xno; then + HAVE_CXX$1=0 + AC_MSG_NOTICE([No compiler with C++$1 support was found]) + else + HAVE_CXX$1=1 + AC_DEFINE(HAVE_CXX$1,1, + [define if the compiler supports basic C++$1 syntax]) + fi + AC_SUBST(HAVE_CXX$1) +]) + + +dnl Test body for checking C++11 support + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11], + _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 +) + +dnl Test body for checking C++14 support + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14], + _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 +) + +dnl Test body for checking C++17 support + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17], + _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 +) + +dnl Test body for checking C++20 support + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_20], + _AX_CXX_COMPILE_STDCXX_testbody_new_in_11 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_14 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_17 + _AX_CXX_COMPILE_STDCXX_testbody_new_in_20 +) + + +dnl Tests for new features in C++11 + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[ + +// If the compiler admits that it is not ready for C++11, why torture it? +// Hopefully, this will speed up the test. + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +// MSVC always sets __cplusplus to 199711L in older versions; newer versions +// only set it correctly if /Zc:__cplusplus is specified as well as a +// /std:c++NN switch: +// https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/ +#elif __cplusplus < 201103L && !defined _MSC_VER + +#error "This is not a C++11 compiler" + +#else + +namespace cxx11 +{ + + namespace test_static_assert + { + + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + } + + namespace test_final_override + { + + struct Base + { + virtual ~Base() {} + virtual void f() {} + }; + + struct Derived : public Base + { + virtual ~Derived() override {} + virtual void f() override {} + }; + + } + + namespace test_double_right_angle_brackets + { + + template < typename T > + struct check {}; + + typedef check single_type; + typedef check> double_type; + typedef check>> triple_type; + typedef check>>> quadruple_type; + + } + + namespace test_decltype + { + + int + f() + { + int a = 1; + decltype(a) b = 2; + return a + b; + } + + } + + namespace test_type_deduction + { + + template < typename T1, typename T2 > + struct is_same + { + static const bool value = false; + }; + + template < typename T > + struct is_same + { + static const bool value = true; + }; + + template < typename T1, typename T2 > + auto + add(T1 a1, T2 a2) -> decltype(a1 + a2) + { + return a1 + a2; + } + + int + test(const int c, volatile int v) + { + static_assert(is_same::value == true, ""); + static_assert(is_same::value == false, ""); + static_assert(is_same::value == false, ""); + auto ac = c; + auto av = v; + auto sumi = ac + av + 'x'; + auto sumf = ac + av + 1.0; + static_assert(is_same::value == true, ""); + static_assert(is_same::value == true, ""); + static_assert(is_same::value == true, ""); + static_assert(is_same::value == false, ""); + static_assert(is_same::value == true, ""); + return (sumf > 0.0) ? sumi : add(c, v); + } + + } + + namespace test_noexcept + { + + int f() { return 0; } + int g() noexcept { return 0; } + + static_assert(noexcept(f()) == false, ""); + static_assert(noexcept(g()) == true, ""); + + } + + namespace test_constexpr + { + + template < typename CharT > + unsigned long constexpr + strlen_c_r(const CharT *const s, const unsigned long acc) noexcept + { + return *s ? strlen_c_r(s + 1, acc + 1) : acc; + } + + template < typename CharT > + unsigned long constexpr + strlen_c(const CharT *const s) noexcept + { + return strlen_c_r(s, 0UL); + } + + static_assert(strlen_c("") == 0UL, ""); + static_assert(strlen_c("1") == 1UL, ""); + static_assert(strlen_c("example") == 7UL, ""); + static_assert(strlen_c("another\0example") == 7UL, ""); + + } + + namespace test_rvalue_references + { + + template < int N > + struct answer + { + static constexpr int value = N; + }; + + answer<1> f(int&) { return answer<1>(); } + answer<2> f(const int&) { return answer<2>(); } + answer<3> f(int&&) { return answer<3>(); } + + void + test() + { + int i = 0; + const int c = 0; + static_assert(decltype(f(i))::value == 1, ""); + static_assert(decltype(f(c))::value == 2, ""); + static_assert(decltype(f(0))::value == 3, ""); + } + + } + + namespace test_uniform_initialization + { + + struct test + { + static const int zero {}; + static const int one {1}; + }; + + static_assert(test::zero == 0, ""); + static_assert(test::one == 1, ""); + + } + + namespace test_lambdas + { + + void + test1() + { + auto lambda1 = [](){}; + auto lambda2 = lambda1; + lambda1(); + lambda2(); + } + + int + test2() + { + auto a = [](int i, int j){ return i + j; }(1, 2); + auto b = []() -> int { return '0'; }(); + auto c = [=](){ return a + b; }(); + auto d = [&](){ return c; }(); + auto e = [a, &b](int x) mutable { + const auto identity = [](int y){ return y; }; + for (auto i = 0; i < a; ++i) + a += b--; + return x + identity(a + b); + }(0); + return a + b + c + d + e; + } + + int + test3() + { + const auto nullary = [](){ return 0; }; + const auto unary = [](int x){ return x; }; + using nullary_t = decltype(nullary); + using unary_t = decltype(unary); + const auto higher1st = [](nullary_t f){ return f(); }; + const auto higher2nd = [unary](nullary_t f1){ + return [unary, f1](unary_t f2){ return f2(unary(f1())); }; + }; + return higher1st(nullary) + higher2nd(nullary)(unary); + } + + } + + namespace test_variadic_templates + { + + template + struct sum; + + template + struct sum + { + static constexpr auto value = N0 + sum::value; + }; + + template <> + struct sum<> + { + static constexpr auto value = 0; + }; + + static_assert(sum<>::value == 0, ""); + static_assert(sum<1>::value == 1, ""); + static_assert(sum<23>::value == 23, ""); + static_assert(sum<1, 2>::value == 3, ""); + static_assert(sum<5, 5, 11>::value == 21, ""); + static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, ""); + + } + + // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae + // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function + // because of this. + namespace test_template_alias_sfinae + { + + struct foo {}; + + template + using member = typename T::member_type; + + template + void func(...) {} + + template + void func(member*) {} + + void test(); + + void test() { func(0); } + + } + +} // namespace cxx11 + +#endif // __cplusplus >= 201103L + +]]) + + +dnl Tests for new features in C++14 + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[ + +// If the compiler admits that it is not ready for C++14, why torture it? +// Hopefully, this will speed up the test. + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 201402L && !defined _MSC_VER + +#error "This is not a C++14 compiler" + +#else + +namespace cxx14 +{ + + namespace test_polymorphic_lambdas + { + + int + test() + { + const auto lambda = [](auto&&... args){ + const auto istiny = [](auto x){ + return (sizeof(x) == 1UL) ? 1 : 0; + }; + const int aretiny[] = { istiny(args)... }; + return aretiny[0]; + }; + return lambda(1, 1L, 1.0f, '1'); + } + + } + + namespace test_binary_literals + { + + constexpr auto ivii = 0b0000000000101010; + static_assert(ivii == 42, "wrong value"); + + } + + namespace test_generalized_constexpr + { + + template < typename CharT > + constexpr unsigned long + strlen_c(const CharT *const s) noexcept + { + auto length = 0UL; + for (auto p = s; *p; ++p) + ++length; + return length; + } + + static_assert(strlen_c("") == 0UL, ""); + static_assert(strlen_c("x") == 1UL, ""); + static_assert(strlen_c("test") == 4UL, ""); + static_assert(strlen_c("another\0test") == 7UL, ""); + + } + + namespace test_lambda_init_capture + { + + int + test() + { + auto x = 0; + const auto lambda1 = [a = x](int b){ return a + b; }; + const auto lambda2 = [a = lambda1(x)](){ return a; }; + return lambda2(); + } + + } + + namespace test_digit_separators + { + + constexpr auto ten_million = 100'000'000; + static_assert(ten_million == 100000000, ""); + + } + + namespace test_return_type_deduction + { + + auto f(int& x) { return x; } + decltype(auto) g(int& x) { return x; } + + template < typename T1, typename T2 > + struct is_same + { + static constexpr auto value = false; + }; + + template < typename T > + struct is_same + { + static constexpr auto value = true; + }; + + int + test() + { + auto x = 0; + static_assert(is_same::value, ""); + static_assert(is_same::value, ""); + return x; + } + + } + +} // namespace cxx14 + +#endif // __cplusplus >= 201402L + +]]) + + +dnl Tests for new features in C++17 + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[ + +// If the compiler admits that it is not ready for C++17, why torture it? +// Hopefully, this will speed up the test. + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 201703L && !defined _MSC_VER + +#error "This is not a C++17 compiler" + +#else + +#include +#include +#include + +namespace cxx17 +{ + + namespace test_constexpr_lambdas + { + + constexpr int foo = [](){return 42;}(); + + } + + namespace test::nested_namespace::definitions + { + + } + + namespace test_fold_expression + { + + template + int multiply(Args... args) + { + return (args * ... * 1); + } + + template + bool all(Args... args) + { + return (args && ...); + } + + } + + namespace test_extended_static_assert + { + + static_assert (true); + + } + + namespace test_auto_brace_init_list + { + + auto foo = {5}; + auto bar {5}; + + static_assert(std::is_same, decltype(foo)>::value); + static_assert(std::is_same::value); + } + + namespace test_typename_in_template_template_parameter + { + + template typename X> struct D; + + } + + namespace test_fallthrough_nodiscard_maybe_unused_attributes + { + + int f1() + { + return 42; + } + + [[nodiscard]] int f2() + { + [[maybe_unused]] auto unused = f1(); + + switch (f1()) + { + case 17: + f1(); + [[fallthrough]]; + case 42: + f1(); + } + return f1(); + } + + } + + namespace test_extended_aggregate_initialization + { + + struct base1 + { + int b1, b2 = 42; + }; + + struct base2 + { + base2() { + b3 = 42; + } + int b3; + }; + + struct derived : base1, base2 + { + int d; + }; + + derived d1 {{1, 2}, {}, 4}; // full initialization + derived d2 {{}, {}, 4}; // value-initialized bases + + } + + namespace test_general_range_based_for_loop + { + + struct iter + { + int i; + + int& operator* () + { + return i; + } + + const int& operator* () const + { + return i; + } + + iter& operator++() + { + ++i; + return *this; + } + }; + + struct sentinel + { + int i; + }; + + bool operator== (const iter& i, const sentinel& s) + { + return i.i == s.i; + } + + bool operator!= (const iter& i, const sentinel& s) + { + return !(i == s); + } + + struct range + { + iter begin() const + { + return {0}; + } + + sentinel end() const + { + return {5}; + } + }; + + void f() + { + range r {}; + + for (auto i : r) + { + [[maybe_unused]] auto v = i; + } + } + + } + + namespace test_lambda_capture_asterisk_this_by_value + { + + struct t + { + int i; + int foo() + { + return [*this]() + { + return i; + }(); + } + }; + + } + + namespace test_enum_class_construction + { + + enum class byte : unsigned char + {}; + + byte foo {42}; + + } + + namespace test_constexpr_if + { + + template + int f () + { + if constexpr(cond) + { + return 13; + } + else + { + return 42; + } + } + + } + + namespace test_selection_statement_with_initializer + { + + int f() + { + return 13; + } + + int f2() + { + if (auto i = f(); i > 0) + { + return 3; + } + + switch (auto i = f(); i + 4) + { + case 17: + return 2; + + default: + return 1; + } + } + + } + + namespace test_template_argument_deduction_for_class_templates + { + + template + struct pair + { + pair (T1 p1, T2 p2) + : m1 {p1}, + m2 {p2} + {} + + T1 m1; + T2 m2; + }; + + void f() + { + [[maybe_unused]] auto p = pair{13, 42u}; + } + + } + + namespace test_non_type_auto_template_parameters + { + + template + struct B + {}; + + B<5> b1; + B<'a'> b2; + + } + + namespace test_structured_bindings + { + + int arr[2] = { 1, 2 }; + std::pair pr = { 1, 2 }; + + auto f1() -> int(&)[2] + { + return arr; + } + + auto f2() -> std::pair& + { + return pr; + } + + struct S + { + int x1 : 2; + volatile double y1; + }; + + S f3() + { + return {}; + } + + auto [ x1, y1 ] = f1(); + auto& [ xr1, yr1 ] = f1(); + auto [ x2, y2 ] = f2(); + auto& [ xr2, yr2 ] = f2(); + const auto [ x3, y3 ] = f3(); + + } + + namespace test_exception_spec_type_system + { + + struct Good {}; + struct Bad {}; + + void g1() noexcept; + void g2(); + + template + Bad + f(T*, T*); + + template + Good + f(T1*, T2*); + + static_assert (std::is_same_v); + + } + + namespace test_inline_variables + { + + template void f(T) + {} + + template inline T g(T) + { + return T{}; + } + + template<> inline void f<>(int) + {} + + template<> int g<>(int) + { + return 5; + } + + } + +} // namespace cxx17 + +#endif // __cplusplus < 201703L && !defined _MSC_VER + +]]) + + +dnl Tests for new features in C++20 + +m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_20], [[ + +#ifndef __cplusplus + +#error "This is not a C++ compiler" + +#elif __cplusplus < 202002L && !defined _MSC_VER + +#error "This is not a C++20 compiler" + +#else + +#include + +namespace cxx20 +{ + +// As C++20 supports feature test macros in the standard, there is no +// immediate need to actually test for feature availability on the +// Autoconf side. + +} // namespace cxx20 + +#endif // __cplusplus < 202002L && !defined _MSC_VER + +]]) diff --git a/build/ax_prog_doxygen.m4 b/build/ax_prog_doxygen.m4 new file mode 100644 index 0000000000..fd145991e6 --- /dev/null +++ b/build/ax_prog_doxygen.m4 @@ -0,0 +1,533 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_prog_doxygen.html +# =========================================================================== +# +# SYNOPSIS +# +# DX_INIT_DOXYGEN(PROJECT-NAME, DOXYFILE-PATH, [OUTPUT-DIR]) +# DX_DOXYGEN_FEATURE(ON|OFF) +# DX_DOT_FEATURE(ON|OFF) +# DX_HTML_FEATURE(ON|OFF) +# DX_CHM_FEATURE(ON|OFF) +# DX_CHI_FEATURE(ON|OFF) +# DX_MAN_FEATURE(ON|OFF) +# DX_RTF_FEATURE(ON|OFF) +# DX_XML_FEATURE(ON|OFF) +# DX_PDF_FEATURE(ON|OFF) +# DX_PS_FEATURE(ON|OFF) +# +# DESCRIPTION +# +# The DX_*_FEATURE macros control the default setting for the given +# Doxygen feature. Supported features are 'DOXYGEN' itself, 'DOT' for +# generating graphics, 'HTML' for plain HTML, 'CHM' for compressed HTML +# help (for MS users), 'CHI' for generating a seperate .chi file by the +# .chm file, and 'MAN', 'RTF', 'XML', 'PDF' and 'PS' for the appropriate +# output formats. The environment variable DOXYGEN_PAPER_SIZE may be +# specified to override the default 'a4wide' paper size. +# +# By default, HTML, PDF and PS documentation is generated as this seems to +# be the most popular and portable combination. MAN pages created by +# Doxygen are usually problematic, though by picking an appropriate subset +# and doing some massaging they might be better than nothing. CHM and RTF +# are specific for MS (note that you can't generate both HTML and CHM at +# the same time). The XML is rather useless unless you apply specialized +# post-processing to it. +# +# The macros mainly control the default state of the feature. The use can +# override the default by specifying --enable or --disable. The macros +# ensure that contradictory flags are not given (e.g., +# --enable-doxygen-html and --enable-doxygen-chm, +# --enable-doxygen-anything with --disable-doxygen, etc.) Finally, each +# feature will be automatically disabled (with a warning) if the required +# programs are missing. +# +# Once all the feature defaults have been specified, call DX_INIT_DOXYGEN +# with the following parameters: a one-word name for the project for use +# as a filename base etc., an optional configuration file name (the +# default is 'Doxyfile', the same as Doxygen's default), and an optional +# output directory name (the default is 'doxygen-doc'). +# +# Automake Support +# +# The following is a template aminclude.am file for use with Automake. +# Make targets and variables values are controlled by the various +# DX_COND_* conditionals set by autoconf. +# +# The provided targets are: +# +# doxygen-doc: Generate all doxygen documentation. +# +# doxygen-run: Run doxygen, which will generate some of the +# documentation (HTML, CHM, CHI, MAN, RTF, XML) +# but will not do the post processing required +# for the rest of it (PS, PDF, and some MAN). +# +# doxygen-man: Rename some doxygen generated man pages. +# +# doxygen-ps: Generate doxygen PostScript documentation. +# +# doxygen-pdf: Generate doxygen PDF documentation. +# +# Note that by default these are not integrated into the automake targets. +# If doxygen is used to generate man pages, you can achieve this +# integration by setting man3_MANS to the list of man pages generated and +# then adding the dependency: +# +# $(man3_MANS): doxygen-doc +# +# This will cause make to run doxygen and generate all the documentation. +# +# The following variable is intended for use in Makefile.am: +# +# DX_CLEANFILES = everything to clean. +# +# Then add this variable to MOSTLYCLEANFILES. +# +# ----- begin aminclude.am ------------------------------------- +# +# ## --------------------------------- ## +# ## Format-independent Doxygen rules. ## +# ## --------------------------------- ## +# +# if DX_COND_doc +# +# ## ------------------------------- ## +# ## Rules specific for HTML output. ## +# ## ------------------------------- ## +# +# if DX_COND_html +# +# DX_CLEAN_HTML = @DX_DOCDIR@/html +# +# endif DX_COND_html +# +# ## ------------------------------ ## +# ## Rules specific for CHM output. ## +# ## ------------------------------ ## +# +# if DX_COND_chm +# +# DX_CLEAN_CHM = @DX_DOCDIR@/chm +# +# if DX_COND_chi +# +# DX_CLEAN_CHI = @DX_DOCDIR@/@PACKAGE@.chi +# +# endif DX_COND_chi +# +# endif DX_COND_chm +# +# ## ------------------------------ ## +# ## Rules specific for MAN output. ## +# ## ------------------------------ ## +# +# if DX_COND_man +# +# DX_CLEAN_MAN = @DX_DOCDIR@/man +# +# endif DX_COND_man +# +# ## ------------------------------ ## +# ## Rules specific for RTF output. ## +# ## ------------------------------ ## +# +# if DX_COND_rtf +# +# DX_CLEAN_RTF = @DX_DOCDIR@/rtf +# +# endif DX_COND_rtf +# +# ## ------------------------------ ## +# ## Rules specific for XML output. ## +# ## ------------------------------ ## +# +# if DX_COND_xml +# +# DX_CLEAN_XML = @DX_DOCDIR@/xml +# +# endif DX_COND_xml +# +# ## ----------------------------- ## +# ## Rules specific for PS output. ## +# ## ----------------------------- ## +# +# if DX_COND_ps +# +# DX_CLEAN_PS = @DX_DOCDIR@/@PACKAGE@.ps +# +# DX_PS_GOAL = doxygen-ps +# +# doxygen-ps: @DX_DOCDIR@/@PACKAGE@.ps +# +# @DX_DOCDIR@/@PACKAGE@.ps: @DX_DOCDIR@/@PACKAGE@.tag +# cd @DX_DOCDIR@/latex; \ +# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ +# $(DX_LATEX) refman.tex; \ +# $(MAKEINDEX_PATH) refman.idx; \ +# $(DX_LATEX) refman.tex; \ +# countdown=5; \ +# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ +# refman.log > /dev/null 2>&1 \ +# && test $$countdown -gt 0; do \ +# $(DX_LATEX) refman.tex; \ +# countdown=`expr $$countdown - 1`; \ +# done; \ +# $(DX_DVIPS) -o ../@PACKAGE@.ps refman.dvi +# +# endif DX_COND_ps +# +# ## ------------------------------ ## +# ## Rules specific for PDF output. ## +# ## ------------------------------ ## +# +# if DX_COND_pdf +# +# DX_CLEAN_PDF = @DX_DOCDIR@/@PACKAGE@.pdf +# +# DX_PDF_GOAL = doxygen-pdf +# +# doxygen-pdf: @DX_DOCDIR@/@PACKAGE@.pdf +# +# @DX_DOCDIR@/@PACKAGE@.pdf: @DX_DOCDIR@/@PACKAGE@.tag +# cd @DX_DOCDIR@/latex; \ +# rm -f *.aux *.toc *.idx *.ind *.ilg *.log *.out; \ +# $(DX_PDFLATEX) refman.tex; \ +# $(DX_MAKEINDEX) refman.idx; \ +# $(DX_PDFLATEX) refman.tex; \ +# countdown=5; \ +# while $(DX_EGREP) 'Rerun (LaTeX|to get cross-references right)' \ +# refman.log > /dev/null 2>&1 \ +# && test $$countdown -gt 0; do \ +# $(DX_PDFLATEX) refman.tex; \ +# countdown=`expr $$countdown - 1`; \ +# done; \ +# mv refman.pdf ../@PACKAGE@.pdf +# +# endif DX_COND_pdf +# +# ## ------------------------------------------------- ## +# ## Rules specific for LaTeX (shared for PS and PDF). ## +# ## ------------------------------------------------- ## +# +# if DX_COND_latex +# +# DX_CLEAN_LATEX = @DX_DOCDIR@/latex +# +# endif DX_COND_latex +# +# .PHONY: doxygen-run doxygen-doc $(DX_PS_GOAL) $(DX_PDF_GOAL) +# +# .INTERMEDIATE: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL) +# +# doxygen-run: @DX_DOCDIR@/@PACKAGE@.tag +# +# doxygen-doc: doxygen-run $(DX_PS_GOAL) $(DX_PDF_GOAL) +# +# @DX_DOCDIR@/@PACKAGE@.tag: $(DX_CONFIG) $(pkginclude_HEADERS) +# rm -rf @DX_DOCDIR@ +# $(DX_ENV) $(DX_DOXYGEN) $(srcdir)/$(DX_CONFIG) +# echo Timestamp >$@ +# +# DX_CLEANFILES = \ +# @DX_DOCDIR@/@PACKAGE@.tag \ +# -r \ +# $(DX_CLEAN_HTML) \ +# $(DX_CLEAN_CHM) \ +# $(DX_CLEAN_CHI) \ +# $(DX_CLEAN_MAN) \ +# $(DX_CLEAN_RTF) \ +# $(DX_CLEAN_XML) \ +# $(DX_CLEAN_PS) \ +# $(DX_CLEAN_PDF) \ +# $(DX_CLEAN_LATEX) +# +# endif DX_COND_doc +# +# ----- end aminclude.am --------------------------------------- +# +# LICENSE +# +# Copyright (c) 2009 Oren Ben-Kiki +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 13 + +## ----------## +## Defaults. ## +## ----------## + +DX_ENV="" +AC_DEFUN([DX_FEATURE_doc], ON) +AC_DEFUN([DX_FEATURE_dot], OFF) +AC_DEFUN([DX_FEATURE_man], OFF) +AC_DEFUN([DX_FEATURE_html], ON) +AC_DEFUN([DX_FEATURE_chm], OFF) +AC_DEFUN([DX_FEATURE_chi], OFF) +AC_DEFUN([DX_FEATURE_rtf], OFF) +AC_DEFUN([DX_FEATURE_xml], OFF) +AC_DEFUN([DX_FEATURE_pdf], ON) +AC_DEFUN([DX_FEATURE_ps], ON) + +## --------------- ## +## Private macros. ## +## --------------- ## + +# DX_ENV_APPEND(VARIABLE, VALUE) +# ------------------------------ +# Append VARIABLE="VALUE" to DX_ENV for invoking doxygen. +AC_DEFUN([DX_ENV_APPEND], [AC_SUBST([DX_ENV], ["$DX_ENV $1='$2'"])]) + +# DX_DIRNAME_EXPR +# --------------- +# Expand into a shell expression prints the directory part of a path. +AC_DEFUN([DX_DIRNAME_EXPR], + [[expr ".$1" : '\(\.\)[^/]*$' \| "x$1" : 'x\(.*\)/[^/]*$']]) + +# DX_IF_FEATURE(FEATURE, IF-ON, IF-OFF) +# ------------------------------------- +# Expands according to the M4 (static) status of the feature. +AC_DEFUN([DX_IF_FEATURE], [ifelse(DX_FEATURE_$1, ON, [$2], [$3])]) + +# DX_REQUIRE_PROG(VARIABLE, PROGRAM) +# ---------------------------------- +# Require the specified program to be found for the DX_CURRENT_FEATURE to work. +AC_DEFUN([DX_REQUIRE_PROG], [ +AC_PATH_TOOL([$1], [$2]) +if test "$DX_FLAG_[]DX_CURRENT_FEATURE$$1" = 1; then + AC_MSG_WARN([$2 not found - will not DX_CURRENT_DESCRIPTION]) + AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0) +fi +]) + +# DX_TEST_FEATURE(FEATURE) +# ------------------------ +# Expand to a shell expression testing whether the feature is active. +AC_DEFUN([DX_TEST_FEATURE], [test "$DX_FLAG_$1" = 1]) + +# DX_CHECK_DEPEND(REQUIRED_FEATURE, REQUIRED_STATE) +# ------------------------------------------------- +# Verify that a required features has the right state before trying to turn on +# the DX_CURRENT_FEATURE. +AC_DEFUN([DX_CHECK_DEPEND], [ +test "$DX_FLAG_$1" = "$2" \ +|| AC_MSG_ERROR([doxygen-DX_CURRENT_FEATURE ifelse([$2], 1, + requires, contradicts) doxygen-DX_CURRENT_FEATURE]) +]) + +# DX_CLEAR_DEPEND(FEATURE, REQUIRED_FEATURE, REQUIRED_STATE) +# ---------------------------------------------------------- +# Turn off the DX_CURRENT_FEATURE if the required feature is off. +AC_DEFUN([DX_CLEAR_DEPEND], [ +test "$DX_FLAG_$1" = "$2" || AC_SUBST(DX_FLAG_[]DX_CURRENT_FEATURE, 0) +]) + +# DX_FEATURE_ARG(FEATURE, DESCRIPTION, +# CHECK_DEPEND, CLEAR_DEPEND, +# REQUIRE, DO-IF-ON, DO-IF-OFF) +# -------------------------------------------- +# Parse the command-line option controlling a feature. CHECK_DEPEND is called +# if the user explicitly turns the feature on (and invokes DX_CHECK_DEPEND), +# otherwise CLEAR_DEPEND is called to turn off the default state if a required +# feature is disabled (using DX_CLEAR_DEPEND). REQUIRE performs additional +# requirement tests (DX_REQUIRE_PROG). Finally, an automake flag is set and +# DO-IF-ON or DO-IF-OFF are called according to the final state of the feature. +AC_DEFUN([DX_ARG_ABLE], [ + AC_DEFUN([DX_CURRENT_FEATURE], [$1]) + AC_DEFUN([DX_CURRENT_DESCRIPTION], [$2]) + AC_ARG_ENABLE(doxygen-$1, + [AS_HELP_STRING(DX_IF_FEATURE([$1], [--disable-doxygen-$1], + [--enable-doxygen-$1]), + DX_IF_FEATURE([$1], [don't $2], [$2]))], + [ +case "$enableval" in +#( +y|Y|yes|Yes|YES) + AC_SUBST([DX_FLAG_$1], 1) + $3 +;; #( +n|N|no|No|NO) + AC_SUBST([DX_FLAG_$1], 0) +;; #( +*) + AC_MSG_ERROR([invalid value '$enableval' given to doxygen-$1]) +;; +esac +], [ +AC_SUBST([DX_FLAG_$1], [DX_IF_FEATURE([$1], 1, 0)]) +$4 +]) +if DX_TEST_FEATURE([$1]); then + $5 + : +fi +AM_CONDITIONAL(DX_COND_$1, DX_TEST_FEATURE([$1])) +if DX_TEST_FEATURE([$1]); then + $6 + : +else + $7 + : +fi +]) + +## -------------- ## +## Public macros. ## +## -------------- ## + +# DX_XXX_FEATURE(DEFAULT_STATE) +# ----------------------------- +AC_DEFUN([DX_DOXYGEN_FEATURE], [AC_DEFUN([DX_FEATURE_doc], [$1])]) +AC_DEFUN([DX_DOT_FEATURE], [AC_DEFUN([DX_FEATURE_dot], [$1])]) +AC_DEFUN([DX_MAN_FEATURE], [AC_DEFUN([DX_FEATURE_man], [$1])]) +AC_DEFUN([DX_HTML_FEATURE], [AC_DEFUN([DX_FEATURE_html], [$1])]) +AC_DEFUN([DX_CHM_FEATURE], [AC_DEFUN([DX_FEATURE_chm], [$1])]) +AC_DEFUN([DX_CHI_FEATURE], [AC_DEFUN([DX_FEATURE_chi], [$1])]) +AC_DEFUN([DX_RTF_FEATURE], [AC_DEFUN([DX_FEATURE_rtf], [$1])]) +AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) +AC_DEFUN([DX_XML_FEATURE], [AC_DEFUN([DX_FEATURE_xml], [$1])]) +AC_DEFUN([DX_PDF_FEATURE], [AC_DEFUN([DX_FEATURE_pdf], [$1])]) +AC_DEFUN([DX_PS_FEATURE], [AC_DEFUN([DX_FEATURE_ps], [$1])]) + +# DX_INIT_DOXYGEN(PROJECT, [CONFIG-FILE], [OUTPUT-DOC-DIR]) +# --------------------------------------------------------- +# PROJECT also serves as the base name for the documentation files. +# The default CONFIG-FILE is "Doxyfile" and OUTPUT-DOC-DIR is "doxygen-doc". +AC_DEFUN([DX_INIT_DOXYGEN], [ + +# Files: +AC_SUBST([DX_PROJECT], [$1]) +AC_SUBST([DX_CONFIG], [ifelse([$2], [], Doxyfile, [$2])]) +AC_SUBST([DX_DOCDIR], [ifelse([$3], [], doxygen-doc, [$3])]) + +# Environment variables used inside doxygen.cfg: +DX_ENV_APPEND(SRCDIR, $srcdir) +DX_ENV_APPEND(PROJECT, $DX_PROJECT) +DX_ENV_APPEND(DOCDIR, $DX_DOCDIR) +DX_ENV_APPEND(VERSION, $PACKAGE_VERSION) + +# Doxygen itself: +DX_ARG_ABLE(doc, [generate any doxygen documentation], + [], + [], + [DX_REQUIRE_PROG([DX_DOXYGEN], doxygen) + DX_REQUIRE_PROG([DX_PERL], perl)], + [DX_ENV_APPEND(PERL_PATH, $DX_PERL)]) + +# Dot for graphics: +DX_ARG_ABLE(dot, [generate graphics for doxygen documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_DOT], dot)], + [DX_ENV_APPEND(HAVE_DOT, YES) + DX_ENV_APPEND(DOT_PATH, [`DX_DIRNAME_EXPR($DX_DOT)`])], + [DX_ENV_APPEND(HAVE_DOT, NO)]) + +# Man pages generation: +DX_ARG_ABLE(man, [generate doxygen manual pages], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [], + [DX_ENV_APPEND(GENERATE_MAN, YES)], + [DX_ENV_APPEND(GENERATE_MAN, NO)]) + +# RTF file generation: +DX_ARG_ABLE(rtf, [generate doxygen RTF documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [], + [DX_ENV_APPEND(GENERATE_RTF, YES)], + [DX_ENV_APPEND(GENERATE_RTF, NO)]) + +# XML file generation: +DX_ARG_ABLE(xml, [generate doxygen XML documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [], + [DX_ENV_APPEND(GENERATE_XML, YES)], + [DX_ENV_APPEND(GENERATE_XML, NO)]) + +# (Compressed) HTML help generation: +DX_ARG_ABLE(chm, [generate doxygen compressed HTML help documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_HHC], hhc)], + [DX_ENV_APPEND(HHC_PATH, $DX_HHC) + DX_ENV_APPEND(GENERATE_HTML, YES) + DX_ENV_APPEND(GENERATE_HTMLHELP, YES)], + [DX_ENV_APPEND(GENERATE_HTMLHELP, NO)]) + +# Seperate CHI file generation. +DX_ARG_ABLE(chi, [generate doxygen seperate compressed HTML help index file], + [DX_CHECK_DEPEND(chm, 1)], + [DX_CLEAR_DEPEND(chm, 1)], + [], + [DX_ENV_APPEND(GENERATE_CHI, YES)], + [DX_ENV_APPEND(GENERATE_CHI, NO)]) + +# Plain HTML pages generation: +DX_ARG_ABLE(html, [generate doxygen plain HTML documentation], + [DX_CHECK_DEPEND(doc, 1) DX_CHECK_DEPEND(chm, 0)], + [DX_CLEAR_DEPEND(doc, 1) DX_CLEAR_DEPEND(chm, 0)], + [], + [DX_ENV_APPEND(GENERATE_HTML, YES)], + [DX_TEST_FEATURE(chm) || DX_ENV_APPEND(GENERATE_HTML, NO)]) + +# PostScript file generation: +DX_ARG_ABLE(ps, [generate doxygen PostScript documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_LATEX], latex) + DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) + DX_REQUIRE_PROG([DX_DVIPS], dvips) + DX_REQUIRE_PROG([DX_EGREP], egrep)]) + +# PDF file generation: +DX_ARG_ABLE(pdf, [generate doxygen PDF documentation], + [DX_CHECK_DEPEND(doc, 1)], + [DX_CLEAR_DEPEND(doc, 1)], + [DX_REQUIRE_PROG([DX_PDFLATEX], pdflatex) + DX_REQUIRE_PROG([DX_MAKEINDEX], makeindex) + DX_REQUIRE_PROG([DX_EGREP], egrep)]) + +# LaTeX generation for PS and/or PDF: +AM_CONDITIONAL(DX_COND_latex, DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf)) +if DX_TEST_FEATURE(ps) || DX_TEST_FEATURE(pdf); then + DX_ENV_APPEND(GENERATE_LATEX, YES) +else + DX_ENV_APPEND(GENERATE_LATEX, NO) +fi + +# Paper size for PS and/or PDF: +AC_ARG_VAR(DOXYGEN_PAPER_SIZE, + [a4wide (default), a4, letter, legal or executive]) +case "$DOXYGEN_PAPER_SIZE" in +#( +"") + AC_SUBST(DOXYGEN_PAPER_SIZE, "") +;; #( +a4wide|a4|letter|legal|executive) + DX_ENV_APPEND(PAPER_SIZE, $DOXYGEN_PAPER_SIZE) +;; #( +*) + AC_MSG_ERROR([unknown DOXYGEN_PAPER_SIZE='$DOXYGEN_PAPER_SIZE']) +;; +esac + +#For debugging: +#echo DX_FLAG_doc=$DX_FLAG_doc +#echo DX_FLAG_dot=$DX_FLAG_dot +#echo DX_FLAG_man=$DX_FLAG_man +#echo DX_FLAG_html=$DX_FLAG_html +#echo DX_FLAG_chm=$DX_FLAG_chm +#echo DX_FLAG_chi=$DX_FLAG_chi +#echo DX_FLAG_rtf=$DX_FLAG_rtf +#echo DX_FLAG_xml=$DX_FLAG_xml +#echo DX_FLAG_pdf=$DX_FLAG_pdf +#echo DX_FLAG_ps=$DX_FLAG_ps +#echo DX_ENV=$DX_ENV +]) diff --git a/build/ax_valgrind_check.m4 b/build/ax_valgrind_check.m4 new file mode 100644 index 0000000000..cb3890ec58 --- /dev/null +++ b/build/ax_valgrind_check.m4 @@ -0,0 +1,236 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_VALGRIND_DFLT(memcheck|helgrind|drd|sgcheck, on|off) +# AX_VALGRIND_CHECK() +# +# DESCRIPTION +# +# AX_VALGRIND_CHECK checks whether Valgrind is present and, if so, allows +# running `make check` under a variety of Valgrind tools to check for +# memory and threading errors. +# +# Defines VALGRIND_CHECK_RULES which should be substituted in your +# Makefile; and $enable_valgrind which can be used in subsequent configure +# output. VALGRIND_ENABLED is defined and substituted, and corresponds to +# the value of the --enable-valgrind option, which defaults to being +# enabled if Valgrind is installed and disabled otherwise. Individual +# Valgrind tools can be disabled via --disable-valgrind-, the +# default is configurable via the AX_VALGRIND_DFLT command or is to use +# all commands not disabled via AX_VALGRIND_DFLT. All AX_VALGRIND_DFLT +# calls must be made before the call to AX_VALGRIND_CHECK. +# +# If unit tests are written using a shell script and automake's +# LOG_COMPILER system, the $(VALGRIND) variable can be used within the +# shell scripts to enable Valgrind, as described here: +# +# https://www.gnu.org/software/gnulib/manual/html_node/Running-self_002dtests-under-valgrind.html +# +# Usage example: +# +# configure.ac: +# +# AX_VALGRIND_DFLT([sgcheck], [off]) +# AX_VALGRIND_CHECK +# +# Makefile.am: +# +# @VALGRIND_CHECK_RULES@ +# VALGRIND_SUPPRESSIONS_FILES = my-project.supp +# EXTRA_DIST = my-project.supp +# +# This results in a "check-valgrind" rule being added to any Makefile.am +# which includes "@VALGRIND_CHECK_RULES@" (assuming the module has been +# configured with --enable-valgrind). Running `make check-valgrind` in +# that directory will run the module's test suite (`make check`) once for +# each of the available Valgrind tools (out of memcheck, helgrind and drd) +# while the sgcheck will be skipped unless enabled again on the +# commandline with --enable-valgrind-sgcheck. The results for each check +# will be output to test-suite-$toolname.log. The target will succeed if +# there are zero errors and fail otherwise. +# +# Alternatively, a "check-valgrind-$TOOL" rule will be added, for $TOOL in +# memcheck, helgrind, drd and sgcheck. These are useful because often only +# some of those tools can be ran cleanly on a codebase. +# +# The macro supports running with and without libtool. +# +# LICENSE +# +# Copyright (c) 2014, 2015, 2016 Philip Withnall +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 13 + +dnl Configured tools +m4_define([valgrind_tool_list], [[memcheck], [helgrind], [drd], [sgcheck]]) +m4_set_add_all([valgrind_exp_tool_set], [sgcheck]) +m4_foreach([vgtool], [valgrind_tool_list], + [m4_define([en_dflt_valgrind_]vgtool, [on])]) + +AC_DEFUN([AX_VALGRIND_DFLT],[ + m4_define([en_dflt_valgrind_$1], [$2]) +])dnl + +AC_DEFUN([AX_VALGRIND_CHECK],[ + dnl Check for --enable-valgrind + AC_ARG_ENABLE([valgrind], + [AS_HELP_STRING([--enable-valgrind], [Whether to enable Valgrind on the unit tests])], + [enable_valgrind=$enableval],[enable_valgrind=]) + + AS_IF([test "$enable_valgrind" != "no"],[ + # Check for Valgrind. + AC_CHECK_PROG([VALGRIND],[valgrind],[valgrind]) + AS_IF([test "$VALGRIND" = ""],[ + AS_IF([test "$enable_valgrind" = "yes"],[ + AC_MSG_ERROR([Could not find valgrind; either install it or reconfigure with --disable-valgrind]) + ],[ + enable_valgrind=no + ]) + ],[ + enable_valgrind=yes + ]) + ]) + + AM_CONDITIONAL([VALGRIND_ENABLED],[test "$enable_valgrind" = "yes"]) + AC_SUBST([VALGRIND_ENABLED],[$enable_valgrind]) + + # Check for Valgrind tools we care about. + [valgrind_enabled_tools=] + m4_foreach([vgtool],[valgrind_tool_list],[ + AC_ARG_ENABLE([valgrind-]vgtool, + m4_if(m4_defn([en_dflt_valgrind_]vgtool),[off],dnl +[AS_HELP_STRING([--enable-valgrind-]vgtool, [Whether to use ]vgtool[ during the Valgrind tests])],dnl +[AS_HELP_STRING([--disable-valgrind-]vgtool, [Whether to skip ]vgtool[ during the Valgrind tests])]), + [enable_valgrind_]vgtool[=$enableval], + [enable_valgrind_]vgtool[=]) + AS_IF([test "$enable_valgrind" = "no"],[ + enable_valgrind_]vgtool[=no], + [test "$enable_valgrind_]vgtool[" ]dnl +m4_if(m4_defn([en_dflt_valgrind_]vgtool), [off], [= "yes"], [!= "no"]),[ + AC_CACHE_CHECK([for Valgrind tool ]vgtool, + [ax_cv_valgrind_tool_]vgtool,[ + ax_cv_valgrind_tool_]vgtool[=no + m4_set_contains([valgrind_exp_tool_set],vgtool, + [m4_define([vgtoolx],[exp-]vgtool)], + [m4_define([vgtoolx],vgtool)]) + AS_IF([`$VALGRIND --tool=]vgtoolx[ --help >/dev/null 2>&1`],[ + ax_cv_valgrind_tool_]vgtool[=yes + ]) + ]) + AS_IF([test "$ax_cv_valgrind_tool_]vgtool[" = "no"],[ + AS_IF([test "$enable_valgrind_]vgtool[" = "yes"],[ + AC_MSG_ERROR([Valgrind does not support ]vgtool[; reconfigure with --disable-valgrind-]vgtool) + ],[ + enable_valgrind_]vgtool[=no + ]) + ],[ + enable_valgrind_]vgtool[=yes + ]) + ]) + AS_IF([test "$enable_valgrind_]vgtool[" = "yes"],[ + valgrind_enabled_tools="$valgrind_enabled_tools ]m4_bpatsubst(vgtool,[^exp-])[" + ]) + AC_SUBST([ENABLE_VALGRIND_]vgtool,[$enable_valgrind_]vgtool) + ]) + AC_SUBST([valgrind_tools],["]m4_join([ ], valgrind_tool_list)["]) + AC_SUBST([valgrind_enabled_tools],[$valgrind_enabled_tools]) + +[VALGRIND_CHECK_RULES=' +# Valgrind check +# +# Optional: +# - VALGRIND_SUPPRESSIONS_FILES: Space-separated list of Valgrind suppressions +# files to load. (Default: empty) +# - VALGRIND_FLAGS: General flags to pass to all Valgrind tools. +# (Default: --num-callers=30) +# - VALGRIND_$toolname_FLAGS: Flags to pass to Valgrind $toolname (one of: +# memcheck, helgrind, drd, sgcheck). (Default: various) + +# Optional variables +VALGRIND_SUPPRESSIONS ?= $(addprefix --suppressions=,$(VALGRIND_SUPPRESSIONS_FILES)) +VALGRIND_FLAGS ?= --num-callers=30 +VALGRIND_memcheck_FLAGS ?= --leak-check=full --show-reachable=no +VALGRIND_helgrind_FLAGS ?= --history-level=approx +VALGRIND_drd_FLAGS ?= +VALGRIND_sgcheck_FLAGS ?= + +# Internal use +valgrind_log_files = $(addprefix test-suite-,$(addsuffix .log,$(valgrind_tools))) + +valgrind_memcheck_flags = --tool=memcheck $(VALGRIND_memcheck_FLAGS) +valgrind_helgrind_flags = --tool=helgrind $(VALGRIND_helgrind_FLAGS) +valgrind_drd_flags = --tool=drd $(VALGRIND_drd_FLAGS) +valgrind_sgcheck_flags = --tool=exp-sgcheck $(VALGRIND_sgcheck_FLAGS) + +valgrind_quiet = $(valgrind_quiet_$(V)) +valgrind_quiet_ = $(valgrind_quiet_$(AM_DEFAULT_VERBOSITY)) +valgrind_quiet_0 = --quiet +valgrind_v_use = $(valgrind_v_use_$(V)) +valgrind_v_use_ = $(valgrind_v_use_$(AM_DEFAULT_VERBOSITY)) +valgrind_v_use_0 = @echo " USE " $(patsubst check-valgrind-%,%,$''@):; + +# Support running with and without libtool. +ifneq ($(LIBTOOL),) +valgrind_lt = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=execute +else +valgrind_lt = +endif + +# Use recursive makes in order to ignore errors during check +check-valgrind: +ifeq ($(VALGRIND_ENABLED),yes) + -$(A''M_V_at)$(foreach tool,$(valgrind_enabled_tools), \ + $(MAKE) $(AM_MAKEFLAGS) -k check-valgrind-$(tool); \ + ) +else + @echo "Need to reconfigure with --enable-valgrind" +endif + +# Valgrind running +VALGRIND_TESTS_ENVIRONMENT = \ + $(TESTS_ENVIRONMENT) \ + env VALGRIND=$(VALGRIND) \ + G_SLICE=always-malloc,debug-blocks \ + G_DEBUG=fatal-warnings,fatal-criticals,gc-friendly + +VALGRIND_LOG_COMPILER = test/test-suite.sh $(VALGRIND_SUPPRESSIONS) $(VALGRIND_FLAGS) +# $(valgrind_lt) \ +# $(VALGRIND) $(VALGRIND_SUPPRESSIONS) --error-exitcode=1 $(VALGRIND_FLAGS) + +define valgrind_tool_rule = +check-valgrind-$(1): +ifeq ($$(VALGRIND_ENABLED)-$$(ENABLE_VALGRIND_$(1)),yes-yes) + $$(valgrind_v_use)$$(MAKE) check-TESTS \ + TESTS_ENVIRONMENT="$$(VALGRIND_TESTS_ENVIRONMENT)" \ + LOG_COMPILER="$$(VALGRIND_LOG_COMPILER)" \ + LOG_FLAGS="$$(valgrind_$(1)_flags)" \ + TEST_SUITE_LOG=test-suite-$(1).log +else ifeq ($$(VALGRIND_ENABLED),yes) + @echo "Need to reconfigure with --enable-valgrind-$(1)" +else + @echo "Need to reconfigure with --enable-valgrind" +endif +endef + +$(foreach tool,$(valgrind_tools),$(eval $(call valgrind_tool_rule,$(tool)))) + +A''M_DISTCHECK_CONFIGURE_FLAGS ?= +A''M_DISTCHECK_CONFIGURE_FLAGS += --disable-valgrind + +MOSTLYCLEANFILES ?= +MOSTLYCLEANFILES += $(valgrind_log_files) + +.PHONY: check-valgrind $(add-prefix check-valgrind-,$(valgrind_tools)) +'] + + AC_SUBST([VALGRIND_CHECK_RULES]) + m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([VALGRIND_CHECK_RULES])]) +]) diff --git a/build/curl.m4 b/build/curl.m4 new file mode 100644 index 0000000000..f5e1bff5c6 --- /dev/null +++ b/build/curl.m4 @@ -0,0 +1,36 @@ +dnl Check for CURL Libraries +dnl Sets: +dnl CURL_CFLAGS +dnl CURL_LDADD +dnl CURL_LDFLAGS +dnl CURL_VERSION +dnl CURL_DISPLAY +dnl CURL_FOUND + +AC_DEFUN([CHECK_CURL], [ +MSC_CHECK_LIB([CURL], [libcurl], [curl/curl.h], [curl], [-DWITH_CURL], [7.15.1]) + +# Post-processing: TLSv1.2 version check +if test "x${CURL_FOUND}" = "x1" && test -n "${CURL_VERSION}"; then + AC_MSG_CHECKING([if libcurl supports TLSv1.2]) + _msc_curl_tlsv2_ver=`echo 7.34.0 | awk -F. '{print (\$ 1 * 1000000) + (\$ 2 * 1000) + \$ 3}'` + _msc_curl_ver=`echo ${CURL_VERSION} | awk -F. '{print (\$ 1 * 1000000) + (\$ 2 * 1000) + \$ 3}'` + if test "${_msc_curl_tlsv2_ver}" -le "${_msc_curl_ver}" 2>/dev/null; then + AC_MSG_RESULT([yes]) + CURL_CFLAGS="${CURL_CFLAGS} -DWITH_CURL_SSLVERSION_TLSv1_2" + else + AC_MSG_RESULT([no]) + fi + + # Check/warn if GnuTLS is used + AC_MSG_CHECKING([if libcurl is linked with gnutls]) + _msc_curl_uses_gnutls=`echo ${CURL_LDADD} | grep gnutls | wc -l` + if test "$_msc_curl_uses_gnutls" -ne 0; then + AC_MSG_RESULT([yes]) + AC_MSG_NOTICE([NOTE: curl linked with gnutls may be buggy, openssl recommended]) + else + AC_MSG_RESULT([no]) + fi +fi + +]) # AC_DEFUN [CHECK_CURL] diff --git a/build/libgeoip.m4 b/build/libgeoip.m4 new file mode 100644 index 0000000000..3aa74b3b9c --- /dev/null +++ b/build/libgeoip.m4 @@ -0,0 +1,12 @@ +dnl Check for GeoIP Libraries +dnl Sets: +dnl GEOIP_CFLAGS +dnl GEOIP_LDADD +dnl GEOIP_LDFLAGS +dnl GEOIP_VERSION +dnl GEOIP_DISPLAY +dnl GEOIP_FOUND + +AC_DEFUN([PROG_GEOIP], [ +MSC_CHECK_LIB([GEOIP], [geoip2 geoip GeoIP], [GeoIPCity.h], [GeoIP], [-DWITH_GEOIP]) +]) # AC_DEFUN [PROG_GEOIP] diff --git a/build/libmaxmind.m4 b/build/libmaxmind.m4 new file mode 100644 index 0000000000..074227daa2 --- /dev/null +++ b/build/libmaxmind.m4 @@ -0,0 +1,12 @@ +dnl Check for MaxMind Libraries +dnl Sets: +dnl MAXMIND_CFLAGS +dnl MAXMIND_LDADD +dnl MAXMIND_LDFLAGS +dnl MAXMIND_VERSION +dnl MAXMIND_DISPLAY +dnl MAXMIND_FOUND + +AC_DEFUN([PROG_MAXMIND], [ +MSC_CHECK_LIB([MAXMIND], [libmaxminddb], [maxminddb.h], [maxminddb], [-DWITH_MAXMIND]) +]) # AC_DEFUN [PROG_MAXMIND] diff --git a/build/libxml.m4 b/build/libxml.m4 new file mode 100644 index 0000000000..035b639d6f --- /dev/null +++ b/build/libxml.m4 @@ -0,0 +1,12 @@ +dnl Check for LIBXML2 Libraries +dnl Sets: +dnl LIBXML2_CFLAGS +dnl LIBXML2_LDADD +dnl LIBXML2_LDFLAGS +dnl LIBXML2_VERSION +dnl LIBXML2_DISPLAY +dnl LIBXML2_FOUND + +AC_DEFUN([CHECK_LIBXML2], [ +MSC_CHECK_LIB([LIBXML2], [libxml-2.0], [libxml/parser.h], [xml2], [-DWITH_LIBXML2], [2.6.29], [libxml]) +]) # AC_DEFUN [CHECK_LIBXML2] diff --git a/build/lmdb.m4 b/build/lmdb.m4 new file mode 100644 index 0000000000..3b834074a1 --- /dev/null +++ b/build/lmdb.m4 @@ -0,0 +1,29 @@ +dnl Check for LMDB Libraries +dnl LMDB is disabled by default; only enabled when --with-lmdb is given. +dnl Sets: +dnl LMDB_CFLAGS +dnl LMDB_LDADD +dnl LMDB_LDFLAGS +dnl LMDB_VERSION +dnl LMDB_DISPLAY +dnl LMDB_FOUND + +AC_DEFUN([PROG_LMDB], [ + +# LMDB is opt-in: auto-detect finds it but we only activate when +# --with-lmdb or --with-lmdb=PATH is given explicitly. +MSC_CHECK_LIB([LMDB], [lmdb], [lmdb.h], [lmdb], [-DWITH_LMDB]) + +# If LMDB was found by auto-detection (no explicit --with-lmdb) treat it +# as disabled since LMDB is opt-in. +_msc_lmdb_with_val="$with_lmdb" +if test "x${_msc_lmdb_with_val}" = "x" && test "x${LMDB_FOUND}" = "x1"; then + LMDB_FOUND=2 + LMDB_CFLAGS="" + LMDB_LDADD="" + LMDB_LDFLAGS="" + LMDB_DISPLAY="" + AC_MSG_NOTICE([LMDB is disabled by default. Use --with-lmdb to enable.]) +fi + +]) # AC_DEFUN [PROG_LMDB] diff --git a/build/lua.m4 b/build/lua.m4 new file mode 100644 index 0000000000..608c10842e --- /dev/null +++ b/build/lua.m4 @@ -0,0 +1,98 @@ +dnl Check for LUA Libraries +dnl Sets: +dnl LUA_CFLAGS +dnl LUA_LDADD +dnl LUA_LDFLAGS +dnl LUA_DISPLAY +dnl LUA_FOUND + +AC_DEFUN([CHECK_LUA], [ +MSC_CHECK_LIB([LUA], [lua55 lua5.5 lua-5.5 lua54 lua5.4 lua-5.4 lua53 lua5.3 lua-5.3 lua52 lua5.2 lua-5.2 lua51 lua5.1 lua-5.1 luajit lua], [lua.h], [lua5.5 lua5.4 lua5.3 lua5.2 lua5.1 luajit-5.1 lua], [-DWITH_LUA]) + +# Post-processing: detect Lua version and add version-specific defines +if test "x${LUA_FOUND}" = "x1"; then + + # Use version already detected by MSC_CHECK_LIB (from pkg-config) if available + if test -n "${LUA_VERSION}" && test "x${LUA_VERSION}" != "xunknown"; then + case ${LUA_VERSION} in + 5.1*) LUA_CFLAGS="-DWITH_LUA_5_1 ${LUA_CFLAGS}" ;; + 5.2*) LUA_CFLAGS="-DWITH_LUA_5_2 ${LUA_CFLAGS}" ;; + 5.3*) LUA_CFLAGS="-DWITH_LUA_5_3 ${LUA_CFLAGS}" ;; + 5.4*) LUA_CFLAGS="-DWITH_LUA_5_4 ${LUA_CFLAGS}" ;; + 5.5*) LUA_CFLAGS="-DWITH_LUA_5_5 ${LUA_CFLAGS}" ;; + 2.0*) LUA_CFLAGS="-DWITH_LUA_5_1 ${LUA_CFLAGS}" ;; + 2.1*) LUA_CFLAGS="-DWITH_LUA_5_1 -DWITH_LUA_JIT_2_1 ${LUA_CFLAGS}" ;; + esac + AC_MSG_NOTICE([LUA version: ${LUA_VERSION}]) + fi + + # If no version detected yet, try compile tests + if test -z "${LUA_VERSION}" || test "x${LUA_VERSION}" = "xunknown"; then + LUA_VERSION="" + _msc_save_CFLAGS=$CFLAGS + CFLAGS="${LUA_CFLAGS} ${CFLAGS}" + + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]], + [[ #if (LUA_VERSION_NUM == 505) + return 0; + #else + #error not 5.5 + #endif ]])], + [ _msc_lua_ver=505 ], [ _msc_lua_ver="" ]) + + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]], + [[ #if (LUA_VERSION_NUM == 504) + return 0; + #else + #error not 5.4 + #endif ]])], + [ _msc_lua_ver=504 ], [ _msc_lua_ver="" ]) + + if test -z "$_msc_lua_ver"; then + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]], + [[ #if (LUA_VERSION_NUM == 503) + return 0; + #else + #error not 5.3 + #endif ]])], + [ _msc_lua_ver=503 ], [ _msc_lua_ver="" ]) + fi + + if test -z "$_msc_lua_ver"; then + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]], + [[ #if (LUA_VERSION_NUM == 502) + return 0; + #else + #error not 5.2 + #endif ]])], + [ _msc_lua_ver=502 ], [ _msc_lua_ver="" ]) + fi + + if test -z "$_msc_lua_ver"; then + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]], + [[ #if (LUA_VERSION_NUM == 501) + return 0; + #else + #error not 5.1 + #endif ]])], + [ _msc_lua_ver=501 ], [ _msc_lua_ver="" ]) + fi + + CFLAGS=$_msc_save_CFLAGS + + case $_msc_lua_ver in + 501) LUA_CFLAGS="-DWITH_LUA_5_1 ${LUA_CFLAGS}" ;; + 502) LUA_CFLAGS="-DWITH_LUA_5_2 ${LUA_CFLAGS}" ;; + 503) LUA_CFLAGS="-DWITH_LUA_5_3 ${LUA_CFLAGS}" ;; + 504) LUA_CFLAGS="-DWITH_LUA_5_4 ${LUA_CFLAGS}" ;; + 505) LUA_CFLAGS="-DWITH_LUA_5_5 ${LUA_CFLAGS}" ;; + esac + if test -n "$_msc_lua_ver"; then + AC_MSG_NOTICE([LUA version from compile test: $_msc_lua_ver]) + fi + fi + + LUA_DISPLAY="${LUA_LDADD} ${LUA_LDFLAGS}, ${LUA_CFLAGS}" +fi + +]) # AC_DEFUN [CHECK_LUA] diff --git a/build/msc_find_lib.m4 b/build/msc_find_lib.m4 new file mode 100644 index 0000000000..dc800a9839 --- /dev/null +++ b/build/msc_find_lib.m4 @@ -0,0 +1,266 @@ +dnl MSC_CHECK_LIB: Generic library detection macro +dnl +dnl MSC_CHECK_LIB(NAME, PKG_NAMES, HEADER, LIB_NAMES, EXTRA_CFLAGS, +dnl [MIN_VERSION], [WITH_NAME]) +dnl +dnl Detects a library via pkg-config first, then falls back to manual +dnl file-system scanning. Preserves the --with-LIB=PATH|yes|no interface. +dnl +dnl Sets and AC_SUBSTs: +dnl ${NAME}_CFLAGS, ${NAME}_LDADD, ${NAME}_LDFLAGS, +dnl ${NAME}_VERSION, ${NAME}_DISPLAY, ${NAME}_FOUND (0/1/2) +dnl +dnl NAME - Variable prefix (e.g., CURL, LIBXML2, LMDB) +dnl PKG_NAMES - Space-separated pkg-config names to try +dnl HEADER - Header file to look for (e.g., libxml/parser.h) +dnl LIB_NAMES - Space-separated library names for -l flags +dnl EXTRA_CFLAGS - Additional CFLAGS when found (e.g., -DWITH_LIBXML2) +dnl MIN_VERSION - Optional minimum version for pkg-config check +dnl WITH_NAME - Optional --with-X name if different from lowercased NAME + +AC_DEFUN([MSC_CHECK_LIB], [ +m4_pushdef([_MSC_NAME], [$1])dnl +m4_pushdef([_MSC_PKG_NAMES], [$2])dnl +m4_pushdef([_MSC_HEADER], [$3])dnl +m4_pushdef([_MSC_LIB_NAMES], [$4])dnl +m4_pushdef([_MSC_EXTRA_CFLAGS], [$5])dnl +m4_pushdef([_MSC_MIN_VERSION], [$6])dnl +m4_pushdef([_MSC_WITH_NAME], [m4_default([$7], m4_tolower([$1]))])dnl +m4_pushdef([_MSC_POSSIBLE_PATHS], [/usr/local /usr /opt /opt/local /usr/lib /usr/local/lib /usr/lib64])dnl +m4_pushdef([_MSC_POSSIBLE_EXTENSIONS], [so la sl dll dylib])dnl + +# Initialize variables +$1_VERSION="" +$1_CFLAGS="" +$1_LDADD="" +$1_LDFLAGS="" +$1_DISPLAY="" +$1_FOUND=0 +_msc_[]m4_tolower($1)[]_mandatory="" +_msc_[]m4_tolower($1)[]_disabled="" + +AC_ARG_WITH( + _MSC_WITH_NAME, + [AS_HELP_STRING([--with-]_MSC_WITH_NAME[=PATH], + [Path to ]_MSC_NAME[ prefix. Use 'no' to disable.])]) + +# Get the value of the --with flag +_msc_with_val="$with_[]m4_translit(_MSC_WITH_NAME, [-], [_])" + +if test "x${_msc_with_val}" = "xno"; then + AC_MSG_NOTICE([$1 support disabled via --without-]_MSC_WITH_NAME) + _msc_[]m4_tolower($1)[]_disabled=yes +elif test "x${_msc_with_val}" = "xyes"; then + _msc_[]m4_tolower($1)[]_mandatory=yes + AC_MSG_NOTICE([$1 support marked as mandatory]) + # Try pkg-config + _MSC_TRY_PKG_CONFIG([$1], [_MSC_PKG_NAMES], [_MSC_MIN_VERSION]) + if test -z "${$1_VERSION}"; then + _MSC_TRY_MANUAL([$1], [_MSC_HEADER], [_MSC_LIB_NAMES]) + fi +elif test "x${_msc_with_val}" = "x"; then + # Auto-detect + AC_MSG_NOTICE([Auto-detecting $1...]) + _MSC_TRY_PKG_CONFIG([$1], [_MSC_PKG_NAMES], [_MSC_MIN_VERSION]) + if test -z "${$1_VERSION}"; then + _MSC_TRY_MANUAL([$1], [_MSC_HEADER], [_MSC_LIB_NAMES]) + fi +else + # Specific path provided + _msc_[]m4_tolower($1)[]_mandatory=yes + _MSC_TRY_PKG_CONFIG_AT([$1], [_MSC_PKG_NAMES], [_MSC_MIN_VERSION], [${_msc_with_val}]) + if test -z "${$1_VERSION}"; then + _MSC_CHECK_AT([$1], [_MSC_HEADER], [_MSC_LIB_NAMES], [${_msc_with_val}]) + fi +fi + +# Evaluate results +if test -n "${$1_LDADD}" || test -n "${$1_VERSION}"; then + $1_FOUND=1 + AC_MSG_NOTICE([using $1 v${$1_VERSION}]) + $1_CFLAGS="_MSC_EXTRA_CFLAGS ${$1_CFLAGS}" + if test -z "${$1_DISPLAY}"; then + $1_DISPLAY="${$1_LDADD}, ${$1_CFLAGS}" + fi + AC_SUBST($1_VERSION) + AC_SUBST($1_LDADD) + AC_SUBST($1_LDFLAGS) + AC_SUBST($1_CFLAGS) + AC_SUBST($1_DISPLAY) +elif test -n "${_msc_[]m4_tolower($1)[]_disabled}"; then + $1_FOUND=2 +elif test -n "${_msc_[]m4_tolower($1)[]_mandatory}"; then + AC_MSG_ERROR([$1 was explicitly requested but not found]) +else + AC_MSG_NOTICE([$1 library not found]) + $1_FOUND=0 +fi + +AC_SUBST($1_FOUND) + +m4_popdef([_MSC_POSSIBLE_EXTENSIONS])dnl +m4_popdef([_MSC_POSSIBLE_PATHS])dnl +m4_popdef([_MSC_WITH_NAME])dnl +m4_popdef([_MSC_MIN_VERSION])dnl +m4_popdef([_MSC_EXTRA_CFLAGS])dnl +m4_popdef([_MSC_LIB_NAMES])dnl +m4_popdef([_MSC_HEADER])dnl +m4_popdef([_MSC_PKG_NAMES])dnl +m4_popdef([_MSC_NAME])dnl +]) # MSC_CHECK_LIB + + +dnl _MSC_TRY_PKG_CONFIG(NAME, PKG_NAMES, MIN_VERSION) +dnl Try to find the library via pkg-config +AC_DEFUN([_MSC_TRY_PKG_CONFIG], [ +if test -n "${PKG_CONFIG}"; then + _msc_pkg_name="" + for _msc_p in $2; do + if test -n "$3"; then + if ${PKG_CONFIG} --exists "${_msc_p} >= $3" 2>/dev/null; then + _msc_pkg_name="${_msc_p}" + break + fi + else + if ${PKG_CONFIG} --exists "${_msc_p}" 2>/dev/null; then + _msc_pkg_name="${_msc_p}" + break + fi + fi + done + if test -n "${_msc_pkg_name}"; then + $1_VERSION="`${PKG_CONFIG} ${_msc_pkg_name} --modversion`" + $1_CFLAGS="`${PKG_CONFIG} ${_msc_pkg_name} --cflags`" + $1_LDADD="`${PKG_CONFIG} ${_msc_pkg_name} --libs-only-l`" + $1_LDFLAGS="`${PKG_CONFIG} ${_msc_pkg_name} --libs-only-L --libs-only-other`" + $1_DISPLAY="${$1_LDADD}, ${$1_CFLAGS}" + AC_MSG_NOTICE([$1 found via pkg-config: ${_msc_pkg_name} v${$1_VERSION}]) + fi +fi +]) # _MSC_TRY_PKG_CONFIG + + +dnl _MSC_TRY_PKG_CONFIG_AT(NAME, PKG_NAMES, MIN_VERSION, PATH) +dnl Try pkg-config with PKG_CONFIG_PATH set to a specific location +AC_DEFUN([_MSC_TRY_PKG_CONFIG_AT], [ +if test -n "${PKG_CONFIG}"; then + _msc_save_pkg_config_path="${PKG_CONFIG_PATH}" + PKG_CONFIG_PATH="$4/lib/pkgconfig:$4/lib64/pkgconfig:$4/share/pkgconfig:${PKG_CONFIG_PATH}" + export PKG_CONFIG_PATH + _MSC_TRY_PKG_CONFIG([$1], [$2], [$3]) + PKG_CONFIG_PATH="${_msc_save_pkg_config_path}" + export PKG_CONFIG_PATH +fi +]) # _MSC_TRY_PKG_CONFIG_AT + + +dnl _MSC_TRY_MANUAL(NAME, HEADER, LIB_NAMES) +dnl Try to find the library by scanning common paths +AC_DEFUN([_MSC_TRY_MANUAL], [ +for _msc_search_path in /usr/local /usr /opt /opt/local /usr/lib /usr/local/lib /usr/lib64; do + _MSC_CHECK_AT([$1], [$2], [$3], [${_msc_search_path}]) + if test -n "${$1_VERSION}"; then + break + fi + # Also check if LDADD was set (version may not always be detected manually) + if test -n "${$1_LDADD}"; then + break + fi +done +]) # _MSC_TRY_MANUAL + + +dnl _MSC_CHECK_AT(NAME, HEADER, LIB_NAMES, PATH) +dnl Check for a library at a specific path +AC_DEFUN([_MSC_CHECK_AT], [ +_msc_check_lib_path="" +_msc_check_lib_name="" +_msc_check_lib_file="" +_msc_check_inc_path="" + +# Search for library files +for _msc_ext in so la sl dll dylib; do + for _msc_ln in $3; do + for _msc_try_path in \ + "$4/lib${_msc_ln}.${_msc_ext}" \ + "$4/lib/lib${_msc_ln}.${_msc_ext}" \ + "$4/lib64/lib${_msc_ln}.${_msc_ext}" \ + "$4/lib/x86_64-linux-gnu/lib${_msc_ln}.${_msc_ext}" \ + "$4/lib/i386-linux-gnu/lib${_msc_ln}.${_msc_ext}"; do + if test -e "${_msc_try_path}"; then + _msc_check_lib_path="`dirname ${_msc_try_path}`" + _msc_check_lib_name="${_msc_ln}" + _msc_check_lib_file="${_msc_try_path}" + break 3 + fi + done + done +done + +# Search for header file +_msc_header_base="`basename $2`" +_msc_header_dir="`dirname $2`" +if test "${_msc_header_dir}" = "."; then + # Simple header name (e.g., "lmdb.h") + if test -e "$4/include/$2"; then + _msc_check_inc_path="$4/include" + elif test -e "$4/$2"; then + _msc_check_inc_path="$4" + fi +else + # Header with subdirectory (e.g., "libxml/parser.h") + if test -e "$4/include/$2"; then + _msc_check_inc_path="$4/include" + elif test -e "$4/$2"; then + _msc_check_inc_path="$4" + fi +fi + +if test -n "${_msc_check_lib_path}" && test -n "${_msc_check_inc_path}"; then + AC_MSG_NOTICE([$1 headers found at: ${_msc_check_inc_path}]) + AC_MSG_NOTICE([$1 library found at: ${_msc_check_lib_file}]) + $1_CFLAGS="-I${_msc_check_inc_path}" + $1_LDADD="-l${_msc_check_lib_name}" + $1_LDFLAGS="-L${_msc_check_lib_path}" + $1_DISPLAY="${_msc_check_lib_file}, ${_msc_check_inc_path}" + # Version is unknown from manual detection + if test -z "${$1_VERSION}"; then + $1_VERSION="unknown" + fi +fi +]) # _MSC_CHECK_AT + + +dnl MSC_STATUS_LIB(DISPLAY_NAME, VAR_PREFIX) +dnl Print a status line for the configure summary +AC_DEFUN([MSC_STATUS_LIB], [ +if test "x${$2_FOUND}" = "x0"; then + echo " + $1 ....not found" +fi +if test "x${$2_FOUND}" = "x1"; then + AS_ECHO_N([" + $1 ....found "]) + if ! test "x${$2_VERSION}" = "x"; then + echo "v${$2_VERSION}" + else + echo "" + fi + echo " ${$2_DISPLAY}" +fi +if test "x${$2_FOUND}" = "x2"; then + echo " + $1 ....disabled" +fi +]) # MSC_STATUS_LIB + + +dnl MSC_ARG_ENABLE_BOOL(NAME, HELP_TEXT, DEFAULT, VARIABLE) +dnl Wrapper for boolean AC_ARG_ENABLE options +AC_DEFUN([MSC_ARG_ENABLE_BOOL], [ +AC_ARG_ENABLE($1, + [AS_HELP_STRING([--enable-$1],[$2])], + [case "${enableval}" in + yes) $4=true ;; + no) $4=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-$1]) ;; + esac], + [$4=$3]) +]) # MSC_ARG_ENABLE_BOOL diff --git a/build/pcre.m4 b/build/pcre.m4 new file mode 100644 index 0000000000..393da883f1 --- /dev/null +++ b/build/pcre.m4 @@ -0,0 +1,50 @@ +dnl Check for PCRE Libraries +dnl Sets: +dnl PCRE_CFLAGS +dnl PCRE_LDADD +dnl PCRE_LDFLAGS +dnl PCRE_VERSION +dnl PCRE_FOUND + +PCRE_CONFIG="" +PCRE_VERSION="" +PCRE_CPPFLAGS="" +PCRE_CFLAGS="" +PCRE_LDFLAGS="" +PCRE_LDADD="" +PCRE_LD_PATH="" + +AC_DEFUN([CHECK_PCRE], [ +MSC_CHECK_LIB([PCRE], [libpcre], [pcre.h], [pcre], [-DWITH_PCRE]) + +# Post-processing: JIT detection +if test "x${PCRE_FOUND}" = "x1" && test -n "${PCRE_VERSION}"; then + AC_MSG_CHECKING([for PCRE JIT]) + _msc_save_CFLAGS=$CFLAGS + _msc_save_LDFLAGS=$LDFLAGS + _msc_save_LIBS=$LIBS + CFLAGS="${PCRE_CFLAGS} ${CFLAGS}" + LDFLAGS="${PCRE_LDADD} ${LDFLAGS}" + LIBS="${PCRE_LDADD} ${LIBS}" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[ #include ]], + [[ pcre_jit_exec(NULL, NULL, NULL, 0, 0, 0, NULL, 0, NULL); ]])], + [ _msc_pcre_jit_available=yes ], + [:] + ) + if test "x$_msc_pcre_jit_available" = "xyes"; then + AC_MSG_RESULT([yes]) + PCRE_CFLAGS="${PCRE_CFLAGS} -DPCRE_HAVE_JIT" + else + AC_MSG_RESULT([no]) + fi + CFLAGS=$_msc_save_CFLAGS + LDFLAGS=$_msc_save_LDFLAGS + LIBS=$_msc_save_LIBS +fi + +AC_SUBST(PCRE_CONFIG) +AC_SUBST(PCRE_CPPFLAGS) +AC_SUBST(PCRE_LD_PATH) + +]) # AC_DEFUN [CHECK_PCRE] diff --git a/build/pcre2.m4 b/build/pcre2.m4 new file mode 100644 index 0000000000..c441a61155 --- /dev/null +++ b/build/pcre2.m4 @@ -0,0 +1,13 @@ +dnl Check for PCRE2 Libraries +dnl PCRE2 is enabled by default (mandatory unless --with-pcre is used). +dnl Sets: +dnl PCRE2_CFLAGS +dnl PCRE2_LDADD +dnl PCRE2_LDFLAGS +dnl PCRE2_VERSION +dnl PCRE2_DISPLAY +dnl PCRE2_FOUND + +AC_DEFUN([PROG_PCRE2], [ +MSC_CHECK_LIB([PCRE2], [libpcre2-8 pcre2-8 pcre2], [pcre2.h], [pcre2-8], []) +]) # AC_DEFUN [PROG_PCRE2] diff --git a/build/release.sh b/build/release.sh new file mode 100644 index 0000000000..a182067b3f --- /dev/null +++ b/build/release.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +git clean -xfdi +git submodule foreach --recursive git clean -xfdi + +VERSION=`git describe --tags` +DIR_NAME="modsecurity-$VERSION" +TAR_NAME="modsecurity-$VERSION.tar.gz" + +MY_DIR=${PWD##*/} +./build.sh + +cd .. +tar --transform "s/^$MY_DIR/$DIR_NAME/" -cvzf $TAR_NAME --exclude .git $MY_DIR + +sha256sum $TAR_NAME > $TAR_NAME.sha256 +gpg --detach-sign -a $TAR_NAME + +cd - +echo $TAR_NAME ": done." + diff --git a/build/ssdeep.m4 b/build/ssdeep.m4 new file mode 100644 index 0000000000..81168bc3f0 --- /dev/null +++ b/build/ssdeep.m4 @@ -0,0 +1,11 @@ +dnl Check for SSDEEP Libraries +dnl Sets: +dnl SSDEEP_CFLAGS +dnl SSDEEP_LDADD +dnl SSDEEP_LDFLAGS +dnl SSDEEP_DISPLAY +dnl SSDEEP_FOUND + +AC_DEFUN([CHECK_SSDEEP], [ +MSC_CHECK_LIB([SSDEEP], [fuzzy], [fuzzy.h], [fuzzy], [-DWITH_SSDEEP]) +]) # AC_DEFUN [CHECK_SSDEEP] diff --git a/build/win32/CMakeLists.txt b/build/win32/CMakeLists.txt new file mode 100644 index 0000000000..1fbe029c91 --- /dev/null +++ b/build/win32/CMakeLists.txt @@ -0,0 +1,293 @@ +cmake_minimum_required(VERSION 3.24) + +set(BASE_DIR ${CMAKE_CURRENT_LIST_DIR}/../..) + +option(WITH_LMDB "Include LMDB support" OFF) +option(WITH_LUA "Include LUA support" ON) +option(WITH_LIBXML2 "Include LibXML2 support" ON) +option(WITH_MAXMIND "Include MaxMind support" ON) +option(WITH_CURL "Include CURL support" ON) +set(JSON_BACKEND "simdjson" CACHE STRING "Select internal JSON backend (simdjson or jsoncons)") +set_property(CACHE JSON_BACKEND PROPERTY STRINGS simdjson jsoncons) + +option(USE_ASAN "Build with Address Sanitizer" OFF) + +# common compiler settings + +# NOTE: MBEDTLS_CONFIG_FILE is not only required to compile the mbedtls subset in others, but also +# when their headers are included while compiling libModSecurity +add_compile_definitions(WIN32 _CRT_SECURE_NO_WARNINGS MBEDTLS_CONFIG_FILE="mbedtls/mbedtls_config.h") + +# set standards conformance preprocessor & compiler to align with cross-compiled codebase +# NOTE: otherwise visual c++'s default compiler/preprocessor behaviour generates C4067 warnings +# (unexpected tokens following preprocessor directive - expected a newline) +add_compile_options(/Zc:preprocessor /permissive-) + +if(USE_ASAN) + add_compile_options(/fsanitize=address) + add_link_options(/INFERASANLIBS /INCREMENTAL:no) +endif() + +# libinjection + +project(libinjection C) + +set(LIBINJECTION_DIR ${BASE_DIR}/others/libinjection) + +add_library(libinjection STATIC ${LIBINJECTION_DIR}/src/libinjection_sqli.c ${LIBINJECTION_DIR}/src/libinjection_xss.c ${LIBINJECTION_DIR}/src/libinjection_html5.c) + +# get libinjection version with git describe +execute_process( + COMMAND git describe + WORKING_DIRECTORY ${LIBINJECTION_DIR} + OUTPUT_VARIABLE LIBINJECTION_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +message("-- Detecting libinjection version - ${LIBINJECTION_VERSION}") + +target_compile_definitions(libinjection PRIVATE LIBINJECTION_VERSION="${LIBINJECTION_VERSION}") + +# mbedtls (mbedcrypto) + +project(mbedcrypto C) + +set(MBEDTLS_DIR ${BASE_DIR}/others/mbedtls) +set(SIMDJSON_DIR ${BASE_DIR}/others/simdjson/singleheader) +set(JSONCONS_DIR ${BASE_DIR}/others/jsoncons/include) + +add_library(mbedcrypto STATIC ${MBEDTLS_DIR}/library/base64.c ${MBEDTLS_DIR}/library/sha1.c ${MBEDTLS_DIR}/library/md5.c ${MBEDTLS_DIR}/library/platform_util.c ${MBEDTLS_DIR}/library/constant_time.c) + +target_include_directories(mbedcrypto PRIVATE ${MBEDTLS_DIR}/include) + +# get mbedtls version with git describe +execute_process( + COMMAND git describe + WORKING_DIRECTORY ${MBEDTLS_DIR} + OUTPUT_VARIABLE MBEDTLS_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +message("-- Detecting Mbed TLS version - ${MBEDTLS_VERSION}") + +# +# libModSecurity +# + +project(libModSecurity + VERSION + 3.0.12 + LANGUAGES + CXX +) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED On) +set(CMAKE_CXX_EXTENSIONS Off) + +set(PACKAGE_BUGREPORT "security@modsecurity.org") +set(PACKAGE_NAME "modsecurity") +set(PACKAGE_VERSION "${PROJECT_VERSION}") +set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") +set(PACKAGE_TARNAME "${PACKAGE_NAME}") + +if(NOT JSON_BACKEND STREQUAL "simdjson" AND NOT JSON_BACKEND STREQUAL "jsoncons") + message(FATAL_ERROR "Unsupported JSON_BACKEND '${JSON_BACKEND}'. Use simdjson or jsoncons.") +endif() + +unset(MSC_JSON_BACKEND_SIMDJSON) +unset(MSC_JSON_BACKEND_JSONCONS) +set(JSON_BACKEND_SIMDJSON_SOURCE ${BASE_DIR}/src/request_body_processor/json_backend_simdjson.cc) +set(JSON_BACKEND_JSONCONS_SOURCE ${BASE_DIR}/src/request_body_processor/json_backend_jsoncons.cc) + +if(JSON_BACKEND STREQUAL "simdjson") + set(MSC_JSON_BACKEND_SIMDJSON 1) + set(JSON_BACKEND_SOURCES ${JSON_BACKEND_SIMDJSON_SOURCE} ${SIMDJSON_DIR}/simdjson.cpp) + set(JSON_BACKEND_INCLUDE_DIR ${SIMDJSON_DIR}) +else() + set(MSC_JSON_BACKEND_JSONCONS 1) + set(JSON_BACKEND_SOURCES ${JSON_BACKEND_JSONCONS_SOURCE}) + set(JSON_BACKEND_INCLUDE_DIR ${JSONCONS_DIR}) +endif() + +set(HAVE_GEOIP 0) # should always be zero, no conan package available +set(HAVE_SSDEEP 0) # should always be zero, no conan package available + +macro(enable_feature flag option) + if(${option}) + set(${flag} 1) # ON + else() + set(${flag} 0) # OFF + endif() +endmacro() + +enable_feature(HAVE_LMDB ${WITH_LMDB}) +enable_feature(HAVE_LUA ${WITH_LUA}) +enable_feature(HAVE_LIBXML2 ${WITH_LIBXML2}) +enable_feature(HAVE_MAXMIND ${WITH_MAXMIND}) +enable_feature(HAVE_CURL ${WITH_CURL}) + +include(${CMAKE_CURRENT_LIST_DIR}/ConfigureChecks.cmake) + +configure_file(config.h.cmake ${BASE_DIR}/src/config.h) + +find_package(PCRE2 REQUIRED) +find_package(Poco REQUIRED) +find_package(dirent REQUIRED) # used only by tests (check dirent::dirent refernces) + +macro(include_package package flag) + if(${flag}) + find_package(${package} REQUIRED) + endif() +endmacro() + +include_package(libxml2 HAVE_LIBXML2) +include_package(lua HAVE_LUA) +include_package(CURL HAVE_CURL) +include_package(lmdb HAVE_LMDB) +include_package(maxminddb HAVE_MAXMIND) + +# library +# + +# NOTE: required to generate libModSecurity's import library (libModSecurity.lib), used by tests to link with shared library +set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) + +file(GLOB_RECURSE libModSecuritySources ${BASE_DIR}/src/*.cc) +list(REMOVE_ITEM libModSecuritySources ${JSON_BACKEND_SIMDJSON_SOURCE} ${JSON_BACKEND_JSONCONS_SOURCE}) +list(APPEND libModSecuritySources ${JSON_BACKEND_SOURCES}) + +add_library(libModSecurity SHARED ${libModSecuritySources}) + +target_compile_definitions(libModSecurity PRIVATE WITH_PCRE2) +target_include_directories(libModSecurity PRIVATE ${BASE_DIR} ${BASE_DIR}/headers ${BASE_DIR}/others ${MBEDTLS_DIR}/include ${JSON_BACKEND_INCLUDE_DIR}) +target_link_libraries(libModSecurity PRIVATE pcre2::pcre2 libinjection mbedcrypto Poco::Poco Iphlpapi.lib) + +macro(add_package_dependency project compile_definition link_library flag) + if(${flag}) + target_compile_definitions(${project} PRIVATE ${compile_definition}) + target_link_libraries(${project} PRIVATE ${link_library}) + endif() +endmacro() + +add_package_dependency(libModSecurity WITH_LIBXML2 LibXml2::LibXml2 HAVE_LIBXML2) +add_package_dependency(libModSecurity WITH_LUA lua::lua HAVE_LUA) +if(HAVE_LUA) + target_compile_definitions(libModSecurity PRIVATE WITH_LUA_5_4) +endif() +add_package_dependency(libModSecurity MSC_WITH_CURL CURL::libcurl HAVE_CURL) +add_package_dependency(libModSecurity WITH_LMDB lmdb::lmdb HAVE_LMDB) +add_package_dependency(libModSecurity WITH_MAXMIND maxminddb::maxminddb HAVE_MAXMIND) + +# tests +# + +project(libModSecurityTests) + +function(setTestTargetProperties executable) + target_compile_definitions(${executable} PRIVATE WITH_PCRE2) + target_include_directories(${executable} PRIVATE ${BASE_DIR} ${BASE_DIR}/headers ${JSONCONS_DIR}) + target_link_libraries(${executable} PRIVATE libModSecurity pcre2::pcre2 dirent::dirent) +endfunction() + +# unit tests +file(GLOB unitTestSources ${BASE_DIR}/test/unit/*.cc) +add_executable(unit_tests ${unitTestSources} ${BASE_DIR}/test/common/custom_debug_log.cc) +setTestTargetProperties(unit_tests) +target_compile_options(unit_tests PRIVATE /wd4805) + +# regression tests +file(GLOB regressionTestsSources ${BASE_DIR}/test/regression/*.cc) +add_executable(regression_tests ${regressionTestsSources} ${BASE_DIR}/test/common/custom_debug_log.cc) +setTestTargetProperties(regression_tests) + +macro(add_regression_test_capability compile_definition flag) + if(${flag}) + target_compile_definitions(regression_tests PRIVATE ${compile_definition}) + endif() +endmacro() + +add_regression_test_capability(WITH_LUA HAVE_LUA) +add_regression_test_capability(WITH_CURL HAVE_CURL) +add_regression_test_capability(WITH_LMDB HAVE_LMDB) +add_regression_test_capability(WITH_MAXMIND HAVE_MAXMIND) + +enable_testing() + +file(READ ${BASE_DIR}/test/test-suite.in TEST_FILES_RAW) +string(REPLACE "\n" ";" TEST_FILES ${TEST_FILES_RAW}) + +foreach(TEST_FILE ${TEST_FILES}) + # ignore comment lines + string(FIND ${TEST_FILE} "#" is_comment) + if(NOT is_comment EQUAL 0) + string(FIND ${TEST_FILE} "TESTS+=" is_valid_prefix) + if(NOT is_valid_prefix EQUAL 0) + message(FATAL_ERROR "Invalid prefix in line: ${TEST_FILE}") + endif() + + # remove 'TESTS+=' prefix and 'test/' too because tests are launched + # from that directory + string(SUBSTRING ${TEST_FILE} 12 -1 TEST_FILE) + + # test name + get_filename_component(TEST_NAME ${TEST_FILE} NAME_WE) + + # determine test runner based on test path prefix + string(FIND ${TEST_FILE} "test-cases/regression/" is_regression_test) + if(is_regression_test EQUAL 0) + set(TEST_RUNNER "regression_tests") + else() + set(TEST_RUNNER "unit_tests") + endif() + + add_test(NAME ${TEST_NAME} COMMAND ${TEST_RUNNER} ${TEST_FILE} WORKING_DIRECTORY ${BASE_DIR}/test) + endif() +endforeach() + +# benchmark +add_executable(benchmark ${BASE_DIR}/test/benchmark/benchmark.cc) +setTestTargetProperties(benchmark) + +# rules_optimization +add_executable(rules_optimization ${BASE_DIR}/test/optimization/optimization.cc) +setTestTargetProperties(rules_optimization) + + +# examples +# + +project(libModSecurityExamples) + +function(setExampleTargetProperties executable) + target_include_directories(${executable} PRIVATE ${BASE_DIR} ${BASE_DIR}/headers) + target_link_libraries(${executable} PRIVATE libModSecurity) +endfunction() + +# simple_example_using_c +add_executable(simple_example_using_c ${BASE_DIR}/examples/simple_example_using_c/test.c) +setExampleTargetProperties(simple_example_using_c) + +# using_bodies_in_chunks +add_executable(using_bodies_in_chunks ${BASE_DIR}/examples/using_bodies_in_chunks/simple_request.cc) +setExampleTargetProperties(using_bodies_in_chunks) + +# reading_logs_via_rule_message +add_executable(reading_logs_via_rule_message ${BASE_DIR}/examples/reading_logs_via_rule_message/simple_request.cc) +setExampleTargetProperties(reading_logs_via_rule_message) + +# reading_logs_with_offset +add_executable(reading_logs_with_offset ${BASE_DIR}/examples/reading_logs_with_offset/read.cc) +setExampleTargetProperties(reading_logs_with_offset) + +# multithread +add_executable(multithread ${BASE_DIR}/examples/multithread/multithread.cc) +setExampleTargetProperties(multithread) + +# tools +# + +# rules_check +add_executable(rules_check ${BASE_DIR}/tools/rules-check/rules-check.cc) +target_include_directories(rules_check PRIVATE ${BASE_DIR} ${BASE_DIR}/headers) +target_link_libraries(rules_check PRIVATE libModSecurity) diff --git a/build/win32/ConfigureChecks.cmake b/build/win32/ConfigureChecks.cmake new file mode 100644 index 0000000000..6322b69652 --- /dev/null +++ b/build/win32/ConfigureChecks.cmake @@ -0,0 +1,18 @@ +include(CheckIncludeFile) +include(CheckIncludeFiles) + +check_include_file("dlfcn.h" HAVE_DLFCN_H) +check_include_file("inttypes.h" HAVE_INTTYPES_H) +check_include_file("stdint.h" HAVE_STDINT_H) +check_include_file("stdio.h" HAVE_STDIO_H) +check_include_file("stdlib.h" HAVE_STDLIB_H) +check_include_file("string" HAVE_STRING) +check_include_file("strings.h" HAVE_STRINGS_H) +check_include_file("string.h" HAVE_STRING_H) +check_include_file("sys/stat.h" HAVE_SYS_STAT_H) +check_include_file("sys/types.h" HAVE_SYS_TYPES_H) +check_include_file("sys/utsname.h" HAVE_SYS_UTSNAME_H) +check_include_file("unistd.h" HAVE_UNISTD_H) + +#/* Define to 1 if you have the ANSI C header files. */ +check_include_files("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS) diff --git a/build/win32/README.md b/build/win32/README.md new file mode 100644 index 0000000000..2c9c11d06f --- /dev/null +++ b/build/win32/README.md @@ -0,0 +1,112 @@ +# libModSecurity Windows build information + +The Windows build of libModSecurity uses Build Tools for Visual Studio 2022 (for Visual C++ & CMake) and Conan package manager. + +## Contents + +- [Prerequisites](#prerequisites) +- [Build](#build) + - [Optional features](#optional-features) + - [Address Sanitizer](#address-sanitizer) + - [Docker container](#docker-container) + +## Prerequisites + + * [Build Tools for Visual Studio 2022](https://aka.ms/vs/17/release/vs_buildtools.exe) + * Install *Desktop development with C++* workload, which includes: + * MSVC C++ compiler + * Windows SDK + * CMake + * Address Sanitizer + * [Conan package manager 2.10.2](https://github.com/conan-io/conan/releases/download/2.10.2/conan-2.10.2-windows-x86_64-installer.exe) + * Install and then setup the default Conan profile to use the MSVC C++ compiler: + 1. Open a command-prompt and set the MSVC C++ compiler environment by executing: `C:\BuildTools\VC\Auxiliary\Build\vcvars64.bat` + 2. Execute: `conan profile detect --force` + * [Git for Windows 2.44.0](https://github.com/git-for-windows/git/releases/download/v2.44.0.windows.1/Git-2.44.0-64-bit.exe) + * To clone the libModSecurity repository. + * NOTE: Make sure to initialize and update submodules (to get `libinjection` and regression tests) + * `git submodule init` + * `git submodule update` + +## Build + +Install the prerequisites listed in the previous section, checkout libModSecurity and from the directory where it's located execute: + +``` +vcbuild.bat [build_configuration] [arch] [USE_ASAN] +``` + +where `[build_configuration]` can be: `Release` (default), `RelWithDebInfo`, `MinSizeRel` or `Debug`, and `[arch]` can be: `x86_64` (default) or `x86`. + +Built files will be located in the directory: `build\win32\build\[build_configuration]` and include: + + * `libModSecurity.dll` + * Executable files for test projects + * `unit_tests.exe` + * `regression_tests.exe` + * `benchmark.exe` + * `rules_optimization.exe` + * Executable files for examples + * `simple_example_using_c.exe` + * `using_bodies_in_chunks.exe` + * `reading_logs_via_rule_message.exe` + * `reading_logs_with_offset.exe` + * `multithread.exe` + * Executable files for tools + * `rules_check.exe` + +NOTE: When building a different configuration, it's recommended to reset: + + * the build directory: `build\win32\build` + * previously built conan packages executing the command: + * `conan remove * -c` + +### Optional features + +By default the following all the following features are enabled by including the associated third-party library through a Conan package: + + * libxml2 2.12.6 for XML processing support + * libcurl 8.6.0 to support http requests from rules + * libmaxminddb 1.9.1 to support reading MaxMind DB files. + * LUA 5.4.6 to enable rules to run scripts in this language for extensibility + * lmdb 0.9.31 in-memory database + +Each of these can be turned off by updating the associated `HAVE_xxx` variable (setting it to zero) in the beginning of the libModSecurity section of `CMakeLists.txt`. + +### Address Sanitizer + +[AddressSanitizer](https://github.com/google/sanitizers/wiki/AddressSanitizer) (aka ASan) is a memory error detector for C/C++. + +To generate a build with *Address Sanitizer*, add the `USE_ASAN` optional third argument to `vcbuild.bat`. For example: + * `vcbuild.bat Debug x86_64 USE_ASAN` + +NOTE: `USE_ASAN` does not work with `Release` & `MinSizeRel` configurations because they do not include debug info (it is only compatible with `Debug` & `RelWithDebInfo` builds). + + * References + * [AddressSanitizer | Microsoft Learn](https://learn.microsoft.com/en-us/cpp/sanitizers/asan?view=msvc-170) + * [AddressSanitizer for Windows: x64 and Debug Build Support - C++ Team Blog (microsoft.com)](https://devblogs.microsoft.com/cppblog/asan-for-windows-x64-and-debug-build-support/) + * [AddressSanitizer language, build, and debugging reference | Microsoft Learn](https://learn.microsoft.com/en-us/cpp/sanitizers/asan-building?view=msvc-170) + +### Docker container + +A `Dockerfile` configuration file is provided in the `docker` subdir that creates a Windows container image which installs the [prerequisites](#prerequisites) and builds libModSecurity and other binaries. + +NOTE: Windows containers are supported in Docker Desktop for Windows, using the *Switch to Windows containers...* option on the context menu of the system tray icon. + +To build the docker image, execute the following command (from the `build\win32\docker` directory): + + * `docker build -t libmodsecurity:latest -m 4GB .` + * Build type, architecture and build with Address Sanitizer can be configured through build arguments (`BUILD_TYPE`, `ARCH` & `USE_ASAN` respectively). For example, to generate a debug build, add the following argument: + * `--build-arg BUILD_TYPE=Debug` + +Once the image is generated, the library and associated binaries (tests & examples) are located in the `C:\src\ModSecurity\build\win32\build\[build_type]` directory. + +To extract the library (`libModSecurity.dll`) from the image, you can execute the following commands: + + * `docker container create --name [container_name] libmodsecurity` + * `docker cp [container_name]:C:\src\ModSecurity\build\win32\build\[build_type]\libModSecurity.dll .` + * NOTE: If you leave out the `libModSecurity.dll` filename out, you can copy all the built binaries (including examples & tests). + +Additionally, the image can be used interactively for additional development work by executing: + + * `docker run -it libmodsecurity` diff --git a/build/win32/conanfile.txt b/build/win32/conanfile.txt new file mode 100644 index 0000000000..0eddc175e4 --- /dev/null +++ b/build/win32/conanfile.txt @@ -0,0 +1,13 @@ +[requires] +pcre2/10.42 +libxml2/2.12.6 +lua/5.4.6 +libcurl/8.6.0 +lmdb/0.9.31 +libmaxminddb/1.9.1 +dirent/1.24 +poco/1.13.3 + +[generators] +CMakeDeps +CMakeToolchain diff --git a/build/win32/config.h.cmake b/build/win32/config.h.cmake new file mode 100644 index 0000000000..d56ce7c56f --- /dev/null +++ b/build/win32/config.h.cmake @@ -0,0 +1,95 @@ +/* config.h.cmake. Based upon generated config.h.in. */ + +#ifndef MODSECURITY_CONFIG_H +#define MODSECURITY_CONFIG_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_IOSTREAM + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDIO_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_UTSNAME_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H + +/* Define if GeoIP is available */ +#cmakedefine HAVE_GEOIP + +/* Define if LMDB is available */ +#cmakedefine HAVE_LMDB + +/* Define if LUA is available */ +#cmakedefine HAVE_LUA + +/* Define if MaxMind is available */ +#cmakedefine HAVE_MAXMIND + +/* Define if SSDEEP is available */ +#cmakedefine HAVE_SSDEEP + +/* Define if libcurl is available */ +#cmakedefine HAVE_CURL + +/* Define if jsoncons is the selected internal JSON backend */ +#cmakedefine MSC_JSON_BACKEND_JSONCONS + +/* Define if simdjson is the selected internal JSON backend */ +#cmakedefine MSC_JSON_BACKEND_SIMDJSON + +/* Name of package */ +#define PACKAGE "@PACKAGE_NAME@" + +/* Define to the address where bug reports for this package should be sent. */ +#cmakedefine PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@" + +/* Define to the full name of this package. */ +#cmakedefine PACKAGE_NAME "@PACKAGE_NAME@" + +/* Define to the full name and version of this package. */ +#cmakedefine PACKAGE_STRING "@PACKAGE_STRING@" + +/* Define to the one symbol short name of this package. */ +#cmakedefine PACKAGE_TARNAME "@PACKAGE_TARNAME@" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#cmakedefine PACKAGE_VERSION "@PACKAGE_VERSION@" + +/* Define to 1 if you have the ANSI C header files. */ +#ifndef STDC_HEADERS +#cmakedefine STDC_HEADERS +#endif + +#endif // ndef MODSECURITY_CONFIG_H diff --git a/build/win32/docker/Dockerfile b/build/win32/docker/Dockerfile new file mode 100644 index 0000000000..e01897904c --- /dev/null +++ b/build/win32/docker/Dockerfile @@ -0,0 +1,115 @@ +# escape=` + +ARG FROM_IMAGE=mcr.microsoft.com/windows/servercore:ltsc2022 +FROM ${FROM_IMAGE} + +# reset the shell. +SHELL ["cmd", "/S", "/C"] + +# set up environment to collect install errors. +COPY InstallBuildTools.cmd C:\TEMP\ +ADD https://aka.ms/vscollect.exe C:\TEMP\collect.exe + +# download channel for fixed install. +ARG CHANNEL_URL=https://aka.ms/vs/17/release/channel +ADD ${CHANNEL_URL} C:\TEMP\VisualStudio.chman + +# download and install Build Tools for Visual Studio 2022 for native desktop workload. +ADD https://aka.ms/vs/17/release/vs_buildtools.exe C:\TEMP\vs_buildtools.exe +RUN C:\TEMP\InstallBuildTools.cmd C:\TEMP\vs_buildtools.exe --quiet --wait --norestart --nocache ` + --channelUri C:\TEMP\VisualStudio.chman ` + --installChannelUri C:\TEMP\VisualStudio.chman ` + --add Microsoft.VisualStudio.Workload.VCTools ` + --includeRecommended ` + --installPath C:\BuildTools + +# download & install GIT +ARG GIT_VERSION=2.44.0 +ARG GIT_BINARY=Git-${GIT_VERSION}-64-bit.exe +ARG GIT_URL=https://github.com/git-for-windows/git/releases/download/v${GIT_VERSION}.windows.1/${GIT_BINARY} + +COPY git.inf C:\TEMP\ +ARG INSTALLER=C:\TEMP\${GIT_BINARY} +ADD ${GIT_URL} ${INSTALLER} +RUN %INSTALLER% /SP- /VERYSILENT /SUPPRESSMSGBOXES /NOCANCEL ` + /NORESTART /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS /LOADINF=git.inf + +# download & setup conan +ARG CONAN_VERSION=2.10.2 +ARG CONAN_BINARY=conan-${CONAN_VERSION}-windows-x86_64-installer.exe +ARG CONAN_URL=https://github.com/conan-io/conan/releases/download/${CONAN_VERSION}/${CONAN_BINARY} + +ARG INSTALLER=C:\TEMP\${CONAN_BINARY} +ADD ${CONAN_URL} ${INSTALLER} +RUN %INSTALLER% /SP- /VERYSILENT /SUPPRESSMSGBOXES + +# setup conan profile +RUN C:\BuildTools\VC\Auxiliary\Build\vcvars64.bat && conan profile detect --force + +# download libModSecurity +# + +# create src dir +ARG SRC_DIR=C:\src + +WORKDIR C:\ +RUN cmd.exe /C md %SRC_DIR% + +# libModSecurity +WORKDIR ${SRC_DIR} + +ARG MOD_SECURITY_TAG=v3/master +RUN git clone -c advice.detachedHead=false --depth 1 --branch %MOD_SECURITY_TAG% https://github.com/owasp-modsecurity/ModSecurity.git + +ARG MOD_SECURITY_DIR=${SRC_DIR}\ModSecurity +WORKDIR ${MOD_SECURITY_DIR} + +# fetch submodules (bindings/python, others/libinjection, test/test-cases/secrules-language-tests) +RUN git submodule init +RUN git submodule update + +# build libraries +# + +ARG BUILD_TYPE=Release +ARG ARCH=x86_64 +ARG USE_ASAN= + +RUN C:\BuildTools\VC\Auxiliary\Build\vcvars64.bat && vcbuild.bat %BUILD_TYPE% %ARCH% %USE_ASAN% + +# test suite +# + +# setup test environment +RUN cmd.exe /C md \tmp +RUN cmd.exe /C md \bin +RUN cmd.exe /C copy "C:\Program Files\GIT\usr\bin" \bin > NUL +RUN cmd.exe /C copy "C:\Program Files\GIT\usr\bin\echo.exe" \bin\echo > NUL + +# disable tests that don't work on windows +ARG JQ_VERSION=1.7.1 +ARG JQ_BINARY=jq-windows-amd64.exe +ARG JQ_URL=https://github.com/jqlang/jq/releases/download/jq-${JQ_VERSION}/${JQ_BINARY} + +ARG JQ_BIN=C:\TEMP\jq.exe +ADD ${JQ_URL} ${JQ_BIN} + +WORKDIR ${MOD_SECURITY_DIR}\test\test-cases\regression + +RUN %JQ_BIN% "map(if .title == \"Test match variable (1/n)\" then .enabled = 0 else . end)" issue-2423-msg-in-chain.json > tmp.json && move /Y tmp.json issue-2423-msg-in-chain.json +RUN %JQ_BIN% "map(if .title == \"Test match variable (2/n)\" then .enabled = 0 else . end)" issue-2423-msg-in-chain.json > tmp.json && move /Y tmp.json issue-2423-msg-in-chain.json +RUN %JQ_BIN% "map(if .title == \"Test match variable (3/n)\" then .enabled = 0 else . end)" issue-2423-msg-in-chain.json > tmp.json && move /Y tmp.json issue-2423-msg-in-chain.json +RUN %JQ_BIN% "map(if .title == \"Variable offset - FILES_NAMES\" then .enabled = 0 else . end)" offset-variable.json > tmp.json && move /Y tmp.json offset-variable.json + +# run tests +WORKDIR ${MOD_SECURITY_DIR}\build\win32\build + +RUN C:\BuildTools\VC\Auxiliary\Build\vcvars64.bat && ctest -C %BUILD_TYPE% --output-on-failure + +# setup container's entrypoint +# + +WORKDIR C:\ + +# Use developer command prompt and start PowerShell if no other command specified. +ENTRYPOINT ["C:\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat", "&&", "powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"] diff --git a/build/win32/docker/InstallBuildTools.cmd b/build/win32/docker/InstallBuildTools.cmd new file mode 100644 index 0000000000..a0c07c7815 --- /dev/null +++ b/build/win32/docker/InstallBuildTools.cmd @@ -0,0 +1,17 @@ +@rem Copyright (C) Microsoft Corporation. All rights reserved. +@rem Licensed under the MIT license. See LICENSE.txt in the project root for license information. + +@if not defined _echo echo off +setlocal enabledelayedexpansion + +call %* +if "%ERRORLEVEL%"=="3010" ( + exit /b 0 +) else ( + if not "%ERRORLEVEL%"=="0" ( + set ERR=%ERRORLEVEL% + call C:\TEMP\collect.exe -zip:C:\vslogs.zip + + exit /b !ERR! + ) +) diff --git a/build/win32/docker/git.inf b/build/win32/docker/git.inf new file mode 100644 index 0000000000..49781dd9a4 --- /dev/null +++ b/build/win32/docker/git.inf @@ -0,0 +1,20 @@ +[Setup] +Lang=default +Dir=C:\Program Files\Git +Group=Git +NoIcons=0 +SetupType=default +Components=ext,ext\shellhere,ext\guihere,gitlfs,assoc,autoupdate +Tasks= +EditorOption=VIM +CustomEditorPath= +PathOption=Cmd +SSHOption=OpenSSH +TortoiseOption=false +CURLOption=WinSSL +CRLFOption=LFOnly +BashTerminalOption=ConHost +PerformanceTweaksFSCache=Enabled +UseCredentialManager=Enabled +EnableSymlinks=Disabled +EnableBuiltinInteractiveAdd=Disabled \ No newline at end of file From c13f7d10f3db1d1bb80380d2882e0afbdbe2d5b8 Mon Sep 17 00:00:00 2001 From: Jens Date: Sun, 12 Apr 2026 13:15:59 +0200 Subject: [PATCH 09/17] performance optimization Complete implementation simdjson Complete implementation jsoncons remove analysis Initialize ret variable to zero in UnitTestResult fix test Fix validateByteRange and cssDecode unit test edge cases complete jsoncons performance adjustment sonarqubecloud error corrected --- analysis/jsoncons/Examples.md | 59 --- analysis/jsoncons/Pages/index.md | 51 -- analysis/jsoncons/Reference.md | 40 -- analysis/jsoncons/SUMMARY.md | 251 --------- analysis/jsoncons/Tutorials/Basics.md | 51 -- .../jsoncons/Tutorials/Unicode support.md | 35 -- analysis/jsoncons/build.md | 43 -- .../jsoncons/ref/bson/basic_bson_cursor.md | 49 -- .../jsoncons/ref/bson/basic_bson_encoder.md | 55 -- analysis/jsoncons/ref/bson/bson.md | 63 --- analysis/jsoncons/ref/bson/bson_options.md | 54 -- analysis/jsoncons/ref/bson/decode_bson.md | 57 -- analysis/jsoncons/ref/bson/encode_bson.md | 51 -- .../jsoncons/ref/cbor/basic_cbor_cursor.md | 55 -- .../jsoncons/ref/cbor/basic_cbor_encoder.md | 57 -- analysis/jsoncons/ref/cbor/cbor.md | 63 --- analysis/jsoncons/ref/cbor/cbor_options.md | 53 -- analysis/jsoncons/ref/cbor/decode_cbor.md | 55 -- analysis/jsoncons/ref/cbor/encode_cbor.md | 59 --- .../jsoncons/ref/corelib/allocator_set.md | 47 -- .../ref/corelib/basic_default_json_visitor.md | 45 -- analysis/jsoncons/ref/corelib/basic_json.md | 47 -- .../jsoncons/ref/corelib/basic_json_cursor.md | 49 -- .../ref/corelib/basic_json_encoder.md | 47 -- .../jsoncons/ref/corelib/basic_json_filter.md | 53 -- .../ref/corelib/basic_json_options.md | 49 -- .../jsoncons/ref/corelib/basic_json_parser.md | 49 -- .../jsoncons/ref/corelib/basic_json_reader.md | 47 -- .../ref/corelib/basic_json_visitor.md | 45 -- .../jsoncons/ref/corelib/basic_staj_event.md | 45 -- .../ref/corelib/bigint_chars_format.md | 49 -- .../ref/corelib/bignum_format_kind.md | 49 -- analysis/jsoncons/ref/corelib/byte_string.md | 47 -- .../jsoncons/ref/corelib/byte_string_arg.md | 53 -- .../jsoncons/ref/corelib/byte_string_arg_t.md | 48 -- .../ref/corelib/byte_string_chars_format.md | 49 -- .../jsoncons/ref/corelib/byte_string_view.md | 47 -- analysis/jsoncons/ref/corelib/conv_error.md | 49 -- .../jsoncons/ref/corelib/conversion_error.md | 44 -- .../jsoncons/ref/corelib/conversion_result.md | 45 -- analysis/jsoncons/ref/corelib/data-model.md | 49 -- analysis/jsoncons/ref/corelib/decode_json.md | 55 -- analysis/jsoncons/ref/corelib/encode_json.md | 57 -- analysis/jsoncons/ref/corelib/err_handler.md | 49 -- .../ref/corelib/float_chars_format.md | 48 -- analysis/jsoncons/ref/corelib/half_arg.md | 47 -- analysis/jsoncons/ref/corelib/half_arg_t.md | 45 -- analysis/jsoncons/ref/corelib/indenting.md | 55 -- analysis/jsoncons/ref/corelib/json.md | 63 --- .../jsoncons/ref/corelib/json/allocators.md | 52 -- .../jsoncons/ref/corelib/json/array_range.md | 59 --- analysis/jsoncons/ref/corelib/json/as.md | 59 --- analysis/jsoncons/ref/corelib/json/at.md | 57 -- .../jsoncons/ref/corelib/json/constructor.md | 61 --- .../jsoncons/ref/corelib/json/destructor.md | 59 --- analysis/jsoncons/ref/corelib/json/dump.md | 63 --- analysis/jsoncons/ref/corelib/json/emplace.md | 59 --- .../jsoncons/ref/corelib/json/emplace_back.md | 59 --- analysis/jsoncons/ref/corelib/json/erase.md | 63 --- .../jsoncons/ref/corelib/json/get_value_or.md | 63 --- analysis/jsoncons/ref/corelib/json/insert.md | 59 --- .../ref/corelib/json/insert_or_assign.md | 59 --- analysis/jsoncons/ref/corelib/json/is.md | 53 -- .../jsoncons/ref/corelib/json/key_value.md | 59 --- .../jsoncons/ref/corelib/json/make_array.md | 59 --- analysis/jsoncons/ref/corelib/json/merge.md | 59 --- .../ref/corelib/json/merge_or_update.md | 59 --- .../jsoncons/ref/corelib/json/object_range.md | 63 --- .../jsoncons/ref/corelib/json/operator=.md | 59 --- .../jsoncons/ref/corelib/json/operator_at.md | 59 --- analysis/jsoncons/ref/corelib/json/parse.md | 63 --- .../jsoncons/ref/corelib/json/push_back.md | 59 --- analysis/jsoncons/ref/corelib/json/range.md | 61 --- .../jsoncons/ref/corelib/json/try_emplace.md | 59 --- .../jsoncons/ref/corelib/json_array_arg.md | 47 -- .../jsoncons/ref/corelib/json_array_arg_t.md | 46 -- analysis/jsoncons/ref/corelib/json_decoder.md | 47 -- analysis/jsoncons/ref/corelib/json_error.md | 47 -- .../jsoncons/ref/corelib/json_object_arg.md | 47 -- .../jsoncons/ref/corelib/json_object_arg_t.md | 48 -- analysis/jsoncons/ref/corelib/json_type.md | 47 -- .../json_type_traits/Eigen-Matrix-example.md | 46 -- .../built-in-specializations.md | 59 --- .../custom-specializations.md | 49 -- .../json_type_traits/json_type_traits.md | 53 -- .../jsoncons/ref/corelib/line_split_kind.md | 51 -- analysis/jsoncons/ref/corelib/ojson.md | 47 -- analysis/jsoncons/ref/corelib/read_error.md | 45 -- analysis/jsoncons/ref/corelib/read_result.md | 45 -- analysis/jsoncons/ref/corelib/reflect.md | 43 -- .../corelib/reflect/Eigen-Matrix-example.md | 52 -- .../ref/corelib/reflect/json_conv_traits.md | 55 -- .../ref/corelib/reflect/reflect-traits-gen.md | 57 -- .../uses-allocator-construction-example.md | 52 -- .../ref/corelib/rename_object_key_filter.md | 49 -- analysis/jsoncons/ref/corelib/semantic_tag.md | 47 -- analysis/jsoncons/ref/corelib/ser_context.md | 47 -- analysis/jsoncons/ref/corelib/ser_error.md | 49 -- .../jsoncons/ref/corelib/spaces_option.md | 49 -- .../ref/corelib/staj_array_iterator.md | 49 -- analysis/jsoncons/ref/corelib/staj_cursor.md | 45 -- .../jsoncons/ref/corelib/staj_event_type.md | 47 -- .../ref/corelib/staj_object_iterator.md | 47 -- .../jsoncons/ref/corelib/utility/bigint.md | 49 -- analysis/jsoncons/ref/corelib/utility/uri.md | 63 --- analysis/jsoncons/ref/corelib/wjson.md | 47 -- analysis/jsoncons/ref/corelib/wojson.md | 47 -- analysis/jsoncons/ref/corelib/write_result.md | 45 -- analysis/jsoncons/ref/csv/basic_csv_cursor.md | 51 -- .../jsoncons/ref/csv/basic_csv_encoder.md | 53 -- .../jsoncons/ref/csv/basic_csv_options.md | 53 -- analysis/jsoncons/ref/csv/basic_csv_reader.md | 51 -- analysis/jsoncons/ref/csv/csv.md | 63 --- analysis/jsoncons/ref/csv/csv_mapping_kind.md | 59 --- analysis/jsoncons/ref/csv/decode_csv.md | 57 -- analysis/jsoncons/ref/csv/encode_csv.md | 59 --- analysis/jsoncons/ref/csv/quote_style_kind.md | 52 -- analysis/jsoncons/ref/deprecated.md | 39 -- analysis/jsoncons/ref/jmespath/jmespath.md | 59 --- .../jsoncons/ref/jmespath/jmespath_errc.md | 55 -- .../jsoncons/ref/jmespath/jmespath_error.md | 47 -- .../ref/jmespath/jmespath_expression.md | 51 -- .../jsoncons/ref/jmespath/make_expression.md | 47 -- analysis/jsoncons/ref/jmespath/search.md | 51 -- .../jsoncons/ref/jsonpatch/apply_patch.md | 55 -- analysis/jsoncons/ref/jsonpatch/from_diff.md | 53 -- analysis/jsoncons/ref/jsonpatch/jsonpatch.md | 51 -- .../jsoncons/ref/jsonpatch/jsonpatch_errc.md | 48 -- .../jsoncons/ref/jsonpatch/jsonpatch_error.md | 51 -- .../ref/jsonpath/basic_json_location.md | 49 -- .../ref/jsonpath/basic_path_element.md | 47 -- .../jsoncons/ref/jsonpath/basic_path_node.md | 47 -- analysis/jsoncons/ref/jsonpath/flatten.md | 51 -- .../jsoncons/ref/jsonpath/functions/abs.md | 51 -- .../jsoncons/ref/jsonpath/functions/avg.md | 57 -- .../jsoncons/ref/jsonpath/functions/ceil.md | 57 -- .../ref/jsonpath/functions/contains.md | 55 -- .../ref/jsonpath/functions/ends_with.md | 49 -- .../jsoncons/ref/jsonpath/functions/floor.md | 57 -- .../jsoncons/ref/jsonpath/functions/keys.md | 49 -- .../jsoncons/ref/jsonpath/functions/length.md | 53 -- .../jsoncons/ref/jsonpath/functions/max.md | 47 -- .../jsoncons/ref/jsonpath/functions/min.md | 47 -- .../jsoncons/ref/jsonpath/functions/prod.md | 49 -- .../ref/jsonpath/functions/starts_with.md | 49 -- .../jsoncons/ref/jsonpath/functions/sum.md | 55 -- .../ref/jsonpath/functions/to_number.md | 49 -- .../ref/jsonpath/functions/tokenize.md | 57 -- analysis/jsoncons/ref/jsonpath/get.md | 47 -- analysis/jsoncons/ref/jsonpath/grammar.md | 39 -- analysis/jsoncons/ref/jsonpath/json_query.md | 59 --- .../jsoncons/ref/jsonpath/json_replace.md | 57 -- .../ref/jsonpath/jsoncons-jsonpath-abnf.md | 39 -- analysis/jsoncons/ref/jsonpath/jsonpath.md | 59 --- .../jsoncons/ref/jsonpath/jsonpath_error.md | 47 -- .../ref/jsonpath/jsonpath_expression.md | 53 -- .../jsonpath/jsonpath_expression/evaluate.md | 57 -- .../jsonpath/jsonpath_expression/select.md | 57 -- .../jsonpath_expression/select_paths.md | 57 -- .../jsonpath/jsonpath_expression/update.md | 51 -- .../jsoncons/ref/jsonpath/jsonpath_grammer.md | 39 -- .../jsoncons/ref/jsonpath/make_expression.md | 61 --- .../jsoncons/ref/jsonpath/path_node_kind.md | 43 -- analysis/jsoncons/ref/jsonpath/remove.md | 57 -- analysis/jsoncons/ref/jsonpath/replace.md | 53 -- .../jsoncons/ref/jsonpath/result_options.md | 59 --- analysis/jsoncons/ref/jsonpointer/add.md | 50 -- .../jsoncons/ref/jsonpointer/add_if_absent.md | 54 -- .../ref/jsonpointer/basic_json_pointer.md | 50 -- analysis/jsoncons/ref/jsonpointer/contains.md | 50 -- analysis/jsoncons/ref/jsonpointer/flatten.md | 54 -- analysis/jsoncons/ref/jsonpointer/get.md | 50 -- .../jsoncons/ref/jsonpointer/jsonpointer.md | 50 -- .../ref/jsonpointer/jsonpointer_errc.md | 45 -- .../ref/jsonpointer/jsonpointer_error.md | 51 -- analysis/jsoncons/ref/jsonpointer/remove.md | 52 -- analysis/jsoncons/ref/jsonpointer/replace.md | 50 -- .../ref/jsonpointer/unflatten_options.md | 53 -- .../ref/jsonschema/custom-error-messages.md | 51 -- .../ref/jsonschema/evaluation_options.md | 49 -- .../jsoncons/ref/jsonschema/json_schema.md | 61 --- .../ref/jsonschema/json_schema/is_valid.md | 51 -- .../ref/jsonschema/json_schema/validate.md | 64 --- .../ref/jsonschema/json_schema/walk.md | 61 --- .../jsoncons/ref/jsonschema/json_validator.md | 53 -- .../jsoncons/ref/jsonschema/jsonschema.md | 57 -- .../ref/jsonschema/make_json_schema.md | 63 --- .../jsoncons/ref/jsonschema/schema_error.md | 47 -- .../jsoncons/ref/jsonschema/schema_version.md | 62 --- .../ref/jsonschema/validation_error.md | 46 -- .../ref/jsonschema/validation_message.md | 63 --- .../ref/jsonschema/validation_output.md | 46 -- .../jsoncons/ref/jsonschema/walk_result.md | 59 --- .../ref/mergepatch/apply_merge_patch.md | 51 -- analysis/jsoncons/ref/mergepatch/from_diff.md | 51 -- .../jsoncons/ref/mergepatch/mergepatch.md | 51 -- .../ref/msgpack/basic_msgpack_cursor.md | 45 -- .../ref/msgpack/basic_msgpack_encoder.md | 47 -- .../jsoncons/ref/msgpack/decode_msgpack.md | 57 -- .../jsoncons/ref/msgpack/encode_msgpack.md | 61 --- analysis/jsoncons/ref/msgpack/msgpack.md | 63 --- .../jsoncons/ref/msgpack/msgpack_options.md | 46 -- analysis/jsoncons/ref/toon/decode_toon.md | 56 -- analysis/jsoncons/ref/toon/encode_toon.md | 55 -- .../jsoncons/ref/toon/key_folding_kind.md | 42 -- analysis/jsoncons/ref/toon/toon.md | 57 -- .../jsoncons/ref/toon/toon_delimiter_kind.md | 48 -- analysis/jsoncons/ref/toon/toon_options.md | 47 -- .../ref/ubjson/basic_ubjson_cursor.md | 45 -- .../ref/ubjson/basic_ubjson_encoder.md | 47 -- analysis/jsoncons/ref/ubjson/decode_ubjson.md | 55 -- analysis/jsoncons/ref/ubjson/encode_ubjson.md | 57 -- analysis/jsoncons/ref/ubjson/ubjson.md | 63 --- .../jsoncons/ref/ubjson/ubjson_options.md | 45 -- analysis/simdjson/SUMMARY.md | 44 -- analysis/simdjson/basics.md | 61 --- analysis/simdjson/basics_doxygen.md | 43 -- analysis/simdjson/builder.md | 62 --- analysis/simdjson/compile_time.md | 60 --- analysis/simdjson/compile_time_accessors.md | 61 --- analysis/simdjson/dom.md | 60 --- analysis/simdjson/implementation-selection.md | 43 -- analysis/simdjson/iterate_many.md | 59 --- analysis/simdjson/ondemand_design.md | 43 -- analysis/simdjson/parse_many.md | 59 --- analysis/simdjson/performance.md | 62 --- analysis/simdjson/tape.md | 58 --- doc/Makefile.am | 4 +- doc/jsoncons_number_scan_assessment.md | 159 ++++++ src/actions/transformations/css_decode.cc | 14 +- src/operators/validate_byte_range.cc | 14 +- src/request_body_processor/json.cc | 12 +- src/request_body_processor/json.h | 6 +- src/request_body_processor/json_adapter.cc | 28 +- src/request_body_processor/json_adapter.h | 9 +- src/request_body_processor/json_backend.h | 9 +- .../json_backend_jsoncons.cc | 291 ++++++++--- .../json_backend_simdjson.cc | 259 ++++++++-- .../json_instrumentation.cc | 12 +- .../json_instrumentation.h | 8 +- src/utils/json_writer.cc | 10 +- src/utils/json_writer.h | 6 +- src/utils/msc_tree.cc | 14 +- test/Makefile.am | 13 + test/benchmark/json_benchmark.cc | 41 +- test/benchmark/run-json-benchmarks.sh | 14 +- test/common/json.h | 6 +- test/run-json-backend-matrix.sh | 38 +- ...st-body-parser-json-backend-edgecases.json | 180 +++++++ test/unit/json_backend_depth_tests.cc | 487 ++++++++++++++++++ test/unit/unit_test.h | 2 +- 251 files changed, 1402 insertions(+), 12313 deletions(-) delete mode 100644 analysis/jsoncons/Examples.md delete mode 100644 analysis/jsoncons/Pages/index.md delete mode 100644 analysis/jsoncons/Reference.md delete mode 100644 analysis/jsoncons/SUMMARY.md delete mode 100644 analysis/jsoncons/Tutorials/Basics.md delete mode 100644 analysis/jsoncons/Tutorials/Unicode support.md delete mode 100644 analysis/jsoncons/build.md delete mode 100644 analysis/jsoncons/ref/bson/basic_bson_cursor.md delete mode 100644 analysis/jsoncons/ref/bson/basic_bson_encoder.md delete mode 100644 analysis/jsoncons/ref/bson/bson.md delete mode 100644 analysis/jsoncons/ref/bson/bson_options.md delete mode 100644 analysis/jsoncons/ref/bson/decode_bson.md delete mode 100644 analysis/jsoncons/ref/bson/encode_bson.md delete mode 100644 analysis/jsoncons/ref/cbor/basic_cbor_cursor.md delete mode 100644 analysis/jsoncons/ref/cbor/basic_cbor_encoder.md delete mode 100644 analysis/jsoncons/ref/cbor/cbor.md delete mode 100644 analysis/jsoncons/ref/cbor/cbor_options.md delete mode 100644 analysis/jsoncons/ref/cbor/decode_cbor.md delete mode 100644 analysis/jsoncons/ref/cbor/encode_cbor.md delete mode 100644 analysis/jsoncons/ref/corelib/allocator_set.md delete mode 100644 analysis/jsoncons/ref/corelib/basic_default_json_visitor.md delete mode 100644 analysis/jsoncons/ref/corelib/basic_json.md delete mode 100644 analysis/jsoncons/ref/corelib/basic_json_cursor.md delete mode 100644 analysis/jsoncons/ref/corelib/basic_json_encoder.md delete mode 100644 analysis/jsoncons/ref/corelib/basic_json_filter.md delete mode 100644 analysis/jsoncons/ref/corelib/basic_json_options.md delete mode 100644 analysis/jsoncons/ref/corelib/basic_json_parser.md delete mode 100644 analysis/jsoncons/ref/corelib/basic_json_reader.md delete mode 100644 analysis/jsoncons/ref/corelib/basic_json_visitor.md delete mode 100644 analysis/jsoncons/ref/corelib/basic_staj_event.md delete mode 100644 analysis/jsoncons/ref/corelib/bigint_chars_format.md delete mode 100644 analysis/jsoncons/ref/corelib/bignum_format_kind.md delete mode 100644 analysis/jsoncons/ref/corelib/byte_string.md delete mode 100644 analysis/jsoncons/ref/corelib/byte_string_arg.md delete mode 100644 analysis/jsoncons/ref/corelib/byte_string_arg_t.md delete mode 100644 analysis/jsoncons/ref/corelib/byte_string_chars_format.md delete mode 100644 analysis/jsoncons/ref/corelib/byte_string_view.md delete mode 100644 analysis/jsoncons/ref/corelib/conv_error.md delete mode 100644 analysis/jsoncons/ref/corelib/conversion_error.md delete mode 100644 analysis/jsoncons/ref/corelib/conversion_result.md delete mode 100644 analysis/jsoncons/ref/corelib/data-model.md delete mode 100644 analysis/jsoncons/ref/corelib/decode_json.md delete mode 100644 analysis/jsoncons/ref/corelib/encode_json.md delete mode 100644 analysis/jsoncons/ref/corelib/err_handler.md delete mode 100644 analysis/jsoncons/ref/corelib/float_chars_format.md delete mode 100644 analysis/jsoncons/ref/corelib/half_arg.md delete mode 100644 analysis/jsoncons/ref/corelib/half_arg_t.md delete mode 100644 analysis/jsoncons/ref/corelib/indenting.md delete mode 100644 analysis/jsoncons/ref/corelib/json.md delete mode 100644 analysis/jsoncons/ref/corelib/json/allocators.md delete mode 100644 analysis/jsoncons/ref/corelib/json/array_range.md delete mode 100644 analysis/jsoncons/ref/corelib/json/as.md delete mode 100644 analysis/jsoncons/ref/corelib/json/at.md delete mode 100644 analysis/jsoncons/ref/corelib/json/constructor.md delete mode 100644 analysis/jsoncons/ref/corelib/json/destructor.md delete mode 100644 analysis/jsoncons/ref/corelib/json/dump.md delete mode 100644 analysis/jsoncons/ref/corelib/json/emplace.md delete mode 100644 analysis/jsoncons/ref/corelib/json/emplace_back.md delete mode 100644 analysis/jsoncons/ref/corelib/json/erase.md delete mode 100644 analysis/jsoncons/ref/corelib/json/get_value_or.md delete mode 100644 analysis/jsoncons/ref/corelib/json/insert.md delete mode 100644 analysis/jsoncons/ref/corelib/json/insert_or_assign.md delete mode 100644 analysis/jsoncons/ref/corelib/json/is.md delete mode 100644 analysis/jsoncons/ref/corelib/json/key_value.md delete mode 100644 analysis/jsoncons/ref/corelib/json/make_array.md delete mode 100644 analysis/jsoncons/ref/corelib/json/merge.md delete mode 100644 analysis/jsoncons/ref/corelib/json/merge_or_update.md delete mode 100644 analysis/jsoncons/ref/corelib/json/object_range.md delete mode 100644 analysis/jsoncons/ref/corelib/json/operator=.md delete mode 100644 analysis/jsoncons/ref/corelib/json/operator_at.md delete mode 100644 analysis/jsoncons/ref/corelib/json/parse.md delete mode 100644 analysis/jsoncons/ref/corelib/json/push_back.md delete mode 100644 analysis/jsoncons/ref/corelib/json/range.md delete mode 100644 analysis/jsoncons/ref/corelib/json/try_emplace.md delete mode 100644 analysis/jsoncons/ref/corelib/json_array_arg.md delete mode 100644 analysis/jsoncons/ref/corelib/json_array_arg_t.md delete mode 100644 analysis/jsoncons/ref/corelib/json_decoder.md delete mode 100644 analysis/jsoncons/ref/corelib/json_error.md delete mode 100644 analysis/jsoncons/ref/corelib/json_object_arg.md delete mode 100644 analysis/jsoncons/ref/corelib/json_object_arg_t.md delete mode 100644 analysis/jsoncons/ref/corelib/json_type.md delete mode 100644 analysis/jsoncons/ref/corelib/json_type_traits/Eigen-Matrix-example.md delete mode 100644 analysis/jsoncons/ref/corelib/json_type_traits/built-in-specializations.md delete mode 100644 analysis/jsoncons/ref/corelib/json_type_traits/custom-specializations.md delete mode 100644 analysis/jsoncons/ref/corelib/json_type_traits/json_type_traits.md delete mode 100644 analysis/jsoncons/ref/corelib/line_split_kind.md delete mode 100644 analysis/jsoncons/ref/corelib/ojson.md delete mode 100644 analysis/jsoncons/ref/corelib/read_error.md delete mode 100644 analysis/jsoncons/ref/corelib/read_result.md delete mode 100644 analysis/jsoncons/ref/corelib/reflect.md delete mode 100644 analysis/jsoncons/ref/corelib/reflect/Eigen-Matrix-example.md delete mode 100644 analysis/jsoncons/ref/corelib/reflect/json_conv_traits.md delete mode 100644 analysis/jsoncons/ref/corelib/reflect/reflect-traits-gen.md delete mode 100644 analysis/jsoncons/ref/corelib/reflect/uses-allocator-construction-example.md delete mode 100644 analysis/jsoncons/ref/corelib/rename_object_key_filter.md delete mode 100644 analysis/jsoncons/ref/corelib/semantic_tag.md delete mode 100644 analysis/jsoncons/ref/corelib/ser_context.md delete mode 100644 analysis/jsoncons/ref/corelib/ser_error.md delete mode 100644 analysis/jsoncons/ref/corelib/spaces_option.md delete mode 100644 analysis/jsoncons/ref/corelib/staj_array_iterator.md delete mode 100644 analysis/jsoncons/ref/corelib/staj_cursor.md delete mode 100644 analysis/jsoncons/ref/corelib/staj_event_type.md delete mode 100644 analysis/jsoncons/ref/corelib/staj_object_iterator.md delete mode 100644 analysis/jsoncons/ref/corelib/utility/bigint.md delete mode 100644 analysis/jsoncons/ref/corelib/utility/uri.md delete mode 100644 analysis/jsoncons/ref/corelib/wjson.md delete mode 100644 analysis/jsoncons/ref/corelib/wojson.md delete mode 100644 analysis/jsoncons/ref/corelib/write_result.md delete mode 100644 analysis/jsoncons/ref/csv/basic_csv_cursor.md delete mode 100644 analysis/jsoncons/ref/csv/basic_csv_encoder.md delete mode 100644 analysis/jsoncons/ref/csv/basic_csv_options.md delete mode 100644 analysis/jsoncons/ref/csv/basic_csv_reader.md delete mode 100644 analysis/jsoncons/ref/csv/csv.md delete mode 100644 analysis/jsoncons/ref/csv/csv_mapping_kind.md delete mode 100644 analysis/jsoncons/ref/csv/decode_csv.md delete mode 100644 analysis/jsoncons/ref/csv/encode_csv.md delete mode 100644 analysis/jsoncons/ref/csv/quote_style_kind.md delete mode 100644 analysis/jsoncons/ref/deprecated.md delete mode 100644 analysis/jsoncons/ref/jmespath/jmespath.md delete mode 100644 analysis/jsoncons/ref/jmespath/jmespath_errc.md delete mode 100644 analysis/jsoncons/ref/jmespath/jmespath_error.md delete mode 100644 analysis/jsoncons/ref/jmespath/jmespath_expression.md delete mode 100644 analysis/jsoncons/ref/jmespath/make_expression.md delete mode 100644 analysis/jsoncons/ref/jmespath/search.md delete mode 100644 analysis/jsoncons/ref/jsonpatch/apply_patch.md delete mode 100644 analysis/jsoncons/ref/jsonpatch/from_diff.md delete mode 100644 analysis/jsoncons/ref/jsonpatch/jsonpatch.md delete mode 100644 analysis/jsoncons/ref/jsonpatch/jsonpatch_errc.md delete mode 100644 analysis/jsoncons/ref/jsonpatch/jsonpatch_error.md delete mode 100644 analysis/jsoncons/ref/jsonpath/basic_json_location.md delete mode 100644 analysis/jsoncons/ref/jsonpath/basic_path_element.md delete mode 100644 analysis/jsoncons/ref/jsonpath/basic_path_node.md delete mode 100644 analysis/jsoncons/ref/jsonpath/flatten.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/abs.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/avg.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/ceil.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/contains.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/ends_with.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/floor.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/keys.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/length.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/max.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/min.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/prod.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/starts_with.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/sum.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/to_number.md delete mode 100644 analysis/jsoncons/ref/jsonpath/functions/tokenize.md delete mode 100644 analysis/jsoncons/ref/jsonpath/get.md delete mode 100644 analysis/jsoncons/ref/jsonpath/grammar.md delete mode 100644 analysis/jsoncons/ref/jsonpath/json_query.md delete mode 100644 analysis/jsoncons/ref/jsonpath/json_replace.md delete mode 100644 analysis/jsoncons/ref/jsonpath/jsoncons-jsonpath-abnf.md delete mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath.md delete mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_error.md delete mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_expression.md delete mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_expression/evaluate.md delete mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_expression/select.md delete mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_expression/select_paths.md delete mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_expression/update.md delete mode 100644 analysis/jsoncons/ref/jsonpath/jsonpath_grammer.md delete mode 100644 analysis/jsoncons/ref/jsonpath/make_expression.md delete mode 100644 analysis/jsoncons/ref/jsonpath/path_node_kind.md delete mode 100644 analysis/jsoncons/ref/jsonpath/remove.md delete mode 100644 analysis/jsoncons/ref/jsonpath/replace.md delete mode 100644 analysis/jsoncons/ref/jsonpath/result_options.md delete mode 100644 analysis/jsoncons/ref/jsonpointer/add.md delete mode 100644 analysis/jsoncons/ref/jsonpointer/add_if_absent.md delete mode 100644 analysis/jsoncons/ref/jsonpointer/basic_json_pointer.md delete mode 100644 analysis/jsoncons/ref/jsonpointer/contains.md delete mode 100644 analysis/jsoncons/ref/jsonpointer/flatten.md delete mode 100644 analysis/jsoncons/ref/jsonpointer/get.md delete mode 100644 analysis/jsoncons/ref/jsonpointer/jsonpointer.md delete mode 100644 analysis/jsoncons/ref/jsonpointer/jsonpointer_errc.md delete mode 100644 analysis/jsoncons/ref/jsonpointer/jsonpointer_error.md delete mode 100644 analysis/jsoncons/ref/jsonpointer/remove.md delete mode 100644 analysis/jsoncons/ref/jsonpointer/replace.md delete mode 100644 analysis/jsoncons/ref/jsonpointer/unflatten_options.md delete mode 100644 analysis/jsoncons/ref/jsonschema/custom-error-messages.md delete mode 100644 analysis/jsoncons/ref/jsonschema/evaluation_options.md delete mode 100644 analysis/jsoncons/ref/jsonschema/json_schema.md delete mode 100644 analysis/jsoncons/ref/jsonschema/json_schema/is_valid.md delete mode 100644 analysis/jsoncons/ref/jsonschema/json_schema/validate.md delete mode 100644 analysis/jsoncons/ref/jsonschema/json_schema/walk.md delete mode 100644 analysis/jsoncons/ref/jsonschema/json_validator.md delete mode 100644 analysis/jsoncons/ref/jsonschema/jsonschema.md delete mode 100644 analysis/jsoncons/ref/jsonschema/make_json_schema.md delete mode 100644 analysis/jsoncons/ref/jsonschema/schema_error.md delete mode 100644 analysis/jsoncons/ref/jsonschema/schema_version.md delete mode 100644 analysis/jsoncons/ref/jsonschema/validation_error.md delete mode 100644 analysis/jsoncons/ref/jsonschema/validation_message.md delete mode 100644 analysis/jsoncons/ref/jsonschema/validation_output.md delete mode 100644 analysis/jsoncons/ref/jsonschema/walk_result.md delete mode 100644 analysis/jsoncons/ref/mergepatch/apply_merge_patch.md delete mode 100644 analysis/jsoncons/ref/mergepatch/from_diff.md delete mode 100644 analysis/jsoncons/ref/mergepatch/mergepatch.md delete mode 100644 analysis/jsoncons/ref/msgpack/basic_msgpack_cursor.md delete mode 100644 analysis/jsoncons/ref/msgpack/basic_msgpack_encoder.md delete mode 100644 analysis/jsoncons/ref/msgpack/decode_msgpack.md delete mode 100644 analysis/jsoncons/ref/msgpack/encode_msgpack.md delete mode 100644 analysis/jsoncons/ref/msgpack/msgpack.md delete mode 100644 analysis/jsoncons/ref/msgpack/msgpack_options.md delete mode 100644 analysis/jsoncons/ref/toon/decode_toon.md delete mode 100644 analysis/jsoncons/ref/toon/encode_toon.md delete mode 100644 analysis/jsoncons/ref/toon/key_folding_kind.md delete mode 100644 analysis/jsoncons/ref/toon/toon.md delete mode 100644 analysis/jsoncons/ref/toon/toon_delimiter_kind.md delete mode 100644 analysis/jsoncons/ref/toon/toon_options.md delete mode 100644 analysis/jsoncons/ref/ubjson/basic_ubjson_cursor.md delete mode 100644 analysis/jsoncons/ref/ubjson/basic_ubjson_encoder.md delete mode 100644 analysis/jsoncons/ref/ubjson/decode_ubjson.md delete mode 100644 analysis/jsoncons/ref/ubjson/encode_ubjson.md delete mode 100644 analysis/jsoncons/ref/ubjson/ubjson.md delete mode 100644 analysis/jsoncons/ref/ubjson/ubjson_options.md delete mode 100644 analysis/simdjson/SUMMARY.md delete mode 100644 analysis/simdjson/basics.md delete mode 100644 analysis/simdjson/basics_doxygen.md delete mode 100644 analysis/simdjson/builder.md delete mode 100644 analysis/simdjson/compile_time.md delete mode 100644 analysis/simdjson/compile_time_accessors.md delete mode 100644 analysis/simdjson/dom.md delete mode 100644 analysis/simdjson/implementation-selection.md delete mode 100644 analysis/simdjson/iterate_many.md delete mode 100644 analysis/simdjson/ondemand_design.md delete mode 100644 analysis/simdjson/parse_many.md delete mode 100644 analysis/simdjson/performance.md delete mode 100644 analysis/simdjson/tape.md create mode 100644 doc/jsoncons_number_scan_assessment.md create mode 100644 test/unit/json_backend_depth_tests.cc diff --git a/analysis/jsoncons/Examples.md b/analysis/jsoncons/Examples.md deleted file mode 100644 index 1111363139..0000000000 --- a/analysis/jsoncons/Examples.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/Examples.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons/json_filter.hpp -- others/jsoncons/examples/src -- Relevante Klassen/Funktionen/Symbole: Encode, Stream, Construct, Access - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Construct` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Construct` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Construct` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Encode` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons/json_filter.hpp -- others/jsoncons/examples/src -- Symbole: Encode, Stream, Construct, Access -- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/Pages/index.md b/analysis/jsoncons/Pages/index.md deleted file mode 100644 index 2b5f1c4194..0000000000 --- a/analysis/jsoncons/Pages/index.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/Pages/index.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons/json_filter.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- Relevante Klassen/Funktionen/Symbole: Introduction - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/csv/csv.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vorhanden. -- Das Symbol bzw. der Begriff `index` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `index` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. -- Das Symbol bzw. der Begriff `index` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. -- Das Symbol bzw. der Begriff `index` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons/json_filter.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- Symbole: Introduction -- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/Reference.md b/analysis/jsoncons/Reference.md deleted file mode 100644 index 4473a28824..0000000000 --- a/analysis/jsoncons/Reference.md +++ /dev/null @@ -1,40 +0,0 @@ -# Analyse: others/jsoncons/doc/Reference.md - -## Zugehörige Implementierung -- Relevante Klassen/Funktionen/Symbole: Streaming API for JSON (StAJ), Extensions, [jsonpointer](ref/jsonpointer/jsonpointer.md) - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `Reference` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. -- Das Symbol bzw. der Begriff `Reference` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp` vor. -- Das Symbol bzw. der Begriff `Reference` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp` vor. -- Das Symbol bzw. der Begriff `Reference` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/issues/draft2020-12/DynamicRefKeyword.txt`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- Symbole: Streaming API for JSON (StAJ), Extensions, [jsonpointer](ref/jsonpointer/jsonpointer.md) -- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/SUMMARY.md b/analysis/jsoncons/SUMMARY.md deleted file mode 100644 index b1a367341d..0000000000 --- a/analysis/jsoncons/SUMMARY.md +++ /dev/null @@ -1,251 +0,0 @@ -# Summary: jsoncons - -Diese Übersicht basiert auf statischer Analyse von Dokumentation, Headern, Tests, Beispielen und Benchmarks im Repository. Vorhandene Tests und Benchmarks wurden in diesem Turn nicht ausgeführt. - -## Übersicht aller geprüften Dateien - -| Doku-Datei | Status | Optimierbar | Priorität | Hauptgrund | -| --- | --- | --- | --- | --- | -| `others/jsoncons/doc/ref/corelib/byte_string_arg_t.md` | widersprüchlich | nein | hohe Priorität | Der dokumentierte Include-Header ist falsch. | -| `others/jsoncons/doc/ref/corelib/json_array_arg_t.md` | widersprüchlich | nein | hohe Priorität | Der dokumentierte Include-Header ist falsch. | -| `others/jsoncons/doc/ref/corelib/json_object_arg_t.md` | widersprüchlich | nein | hohe Priorität | Der dokumentierte Include-Header ist falsch. | -| `others/jsoncons/doc/ref/jsonpath/flatten.md` | widersprüchlich | ja | hohe Priorität | Der dokumentierte Include-Pfad im Kopf ist veraltet oder falsch. | -| `others/jsoncons/doc/ref/jsonpointer/unflatten_options.md` | widersprüchlich | ja | hohe Priorität | Der dokumentierte Include-Pfad ist falsch; korrekt ist `jsoncons_ext/jsonpointer/jsonpointer.hpp`. | -| `others/jsoncons/doc/ref/jsonschema/json_schema/validate.md` | widersprüchlich | ja | hohe Priorität | Die Doku nennt für Overload (1) `void validate(const Json& instance) const`, der Header implementiert aber `Json validate(const Json& instance) const` und gibt den Patch zurück. | -| `others/jsoncons/doc/ref/jsonschema/json_validator.md` | wahrscheinlich veraltet | nein | hohe Priorität | Die dokumentierte Klasse ist im aktuellen Repository nicht in der beschriebenen Form implementiert. | -| `others/jsoncons/doc/ref/jsonschema/schema_error.md` | widersprüchlich | nein | hohe Priorität | Der dokumentierte Include-Pfad ist falsch; die Implementierung liegt in `jsonschema_error.hpp`. | -| `others/jsoncons/doc/ref/jsonschema/schema_version.md` | widersprüchlich | nein | hohe Priorität | Der dokumentierte Include-Pfad ist falsch. | -| `others/jsoncons/doc/ref/jsonschema/validation_output.md` | wahrscheinlich veraltet | nein | hohe Priorität | Der dokumentierte Typ `validation_output` ist im aktuellen Repository nicht nachweisbar. | -| `others/jsoncons/doc/ref/toon/decode_toon.md` | widersprüchlich | ja | hohe Priorität | Der dokumentierte Include-Pfad `jsoncons/decode_toon.hpp` ist falsch; korrekt ist `jsoncons_ext/toon/decode_toon.hpp`. | -| `others/jsoncons/doc/Tutorials/Unicode support.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/corelib/basic_default_json_visitor.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/corelib/basic_staj_event.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/corelib/conversion_error.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/corelib/conversion_result.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/corelib/json_type_traits/Eigen-Matrix-example.md` | teilweise unklar | ja | mittlere Priorität | Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. | -| `others/jsoncons/doc/ref/corelib/read_error.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/corelib/read_result.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/corelib/reflect/Eigen-Matrix-example.md` | teilweise unklar | ja | mittlere Priorität | Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. | -| `others/jsoncons/doc/ref/corelib/reflect/uses-allocator-construction-example.md` | teilweise unklar | ja | mittlere Priorität | Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. | -| `others/jsoncons/doc/ref/corelib/staj_cursor.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/corelib/write_result.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/jsonpath/grammar.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/jsonpath/jsoncons-jsonpath-abnf.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/jsonpath/jsonpath_grammer.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/jsonpath/path_node_kind.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/jsonpointer/jsonpointer_errc.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/ref/jsonschema/jsonschema.md` | teilweise unklar | ja | mittlere Priorität | Mindestens ein gezeigtes C++-Beispiel ist in der Doku syntaktisch unvollständig. | -| `others/jsoncons/doc/ref/toon/key_folding_kind.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/jsoncons/doc/Examples.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/Pages/index.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/Reference.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/Tutorials/Basics.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/build.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/bson/basic_bson_cursor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/bson/basic_bson_encoder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/bson/bson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/bson/bson_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/bson/decode_bson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/bson/encode_bson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/cbor/basic_cbor_cursor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/cbor/basic_cbor_encoder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/cbor/cbor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/cbor/cbor_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/cbor/decode_cbor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/cbor/encode_cbor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/allocator_set.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/basic_json.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/basic_json_cursor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/basic_json_encoder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/basic_json_filter.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/basic_json_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/basic_json_parser.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/basic_json_reader.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/basic_json_visitor.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/bigint_chars_format.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/bignum_format_kind.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/byte_string.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/byte_string_arg.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/byte_string_chars_format.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/byte_string_view.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/conv_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/data-model.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/decode_json.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/encode_json.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/err_handler.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/float_chars_format.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/half_arg.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/half_arg_t.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/indenting.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/allocators.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/array_range.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/as.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/at.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/constructor.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/destructor.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/dump.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/emplace.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/emplace_back.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/erase.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/get_value_or.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/insert.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/insert_or_assign.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/is.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/key_value.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/make_array.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/merge.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/merge_or_update.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/object_range.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/operator=.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/operator_at.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/parse.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/push_back.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/range.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json/try_emplace.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json_array_arg.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json_decoder.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json_object_arg.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json_type.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json_type_traits/built-in-specializations.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json_type_traits/custom-specializations.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/json_type_traits/json_type_traits.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/line_split_kind.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/ojson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/reflect.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/reflect/json_conv_traits.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/reflect/reflect-traits-gen.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/rename_object_key_filter.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/semantic_tag.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/ser_context.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/ser_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/spaces_option.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/staj_array_iterator.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/staj_event_type.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/staj_object_iterator.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/utility/bigint.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/utility/uri.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/wjson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/corelib/wojson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/csv/basic_csv_cursor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/csv/basic_csv_encoder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/csv/basic_csv_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/csv/basic_csv_reader.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/csv/csv.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/csv/csv_mapping_kind.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/csv/decode_csv.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/csv/encode_csv.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/csv/quote_style_kind.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/deprecated.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jmespath/jmespath.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jmespath/jmespath_errc.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jmespath/jmespath_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jmespath/jmespath_expression.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jmespath/make_expression.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jmespath/search.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpatch/apply_patch.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpatch/from_diff.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpatch/jsonpatch.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpatch/jsonpatch_errc.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpatch/jsonpatch_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/basic_json_location.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/basic_path_element.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/basic_path_node.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/abs.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/avg.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/ceil.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/contains.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/ends_with.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/floor.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/keys.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/length.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/max.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/min.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/prod.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/starts_with.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/sum.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/to_number.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/functions/tokenize.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/get.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/json_query.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/json_replace.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/jsonpath.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/jsonpath_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/jsonpath_expression.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/jsonpath_expression/evaluate.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/jsonpath_expression/select.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/jsonpath_expression/select_paths.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/jsonpath_expression/update.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/make_expression.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/remove.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/replace.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpath/result_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpointer/add.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpointer/add_if_absent.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpointer/basic_json_pointer.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpointer/contains.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpointer/flatten.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpointer/get.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpointer/jsonpointer.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpointer/jsonpointer_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpointer/remove.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonpointer/replace.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonschema/custom-error-messages.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonschema/evaluation_options.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonschema/json_schema.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonschema/json_schema/is_valid.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonschema/json_schema/walk.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonschema/make_json_schema.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonschema/validation_error.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonschema/validation_message.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/jsonschema/walk_result.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/mergepatch/apply_merge_patch.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/mergepatch/from_diff.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/mergepatch/mergepatch.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/msgpack/basic_msgpack_cursor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/msgpack/basic_msgpack_encoder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/msgpack/decode_msgpack.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/msgpack/encode_msgpack.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/msgpack/msgpack.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/msgpack/msgpack_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/toon/encode_toon.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/toon/toon.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/toon/toon_delimiter_kind.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/toon/toon_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/ubjson/basic_ubjson_cursor.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/ubjson/basic_ubjson_encoder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/ubjson/decode_ubjson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/ubjson/encode_ubjson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/ubjson/ubjson.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/jsoncons/doc/ref/ubjson/ubjson_options.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | - -## Korrektheit - -- Bestätigt: 183 Dateien. -- Beispiele bestätigt: `others/jsoncons/doc/Examples.md`, `others/jsoncons/doc/Pages/index.md`, `others/jsoncons/doc/Reference.md`, `others/jsoncons/doc/Tutorials/Basics.md`, `others/jsoncons/doc/build.md`, `others/jsoncons/doc/ref/bson/basic_bson_cursor.md`, `others/jsoncons/doc/ref/bson/basic_bson_encoder.md`, `others/jsoncons/doc/ref/bson/bson.md` -- Teilweise unklar: 19 Dateien. -- Beispiele teilweise unklar: `others/jsoncons/doc/Tutorials/Unicode support.md`, `others/jsoncons/doc/ref/corelib/basic_default_json_visitor.md`, `others/jsoncons/doc/ref/corelib/basic_staj_event.md`, `others/jsoncons/doc/ref/corelib/conversion_error.md`, `others/jsoncons/doc/ref/corelib/conversion_result.md`, `others/jsoncons/doc/ref/corelib/json_type_traits/Eigen-Matrix-example.md`, `others/jsoncons/doc/ref/corelib/read_error.md`, `others/jsoncons/doc/ref/corelib/read_result.md`, `others/jsoncons/doc/ref/corelib/reflect/Eigen-Matrix-example.md`, `others/jsoncons/doc/ref/corelib/reflect/uses-allocator-construction-example.md`, `others/jsoncons/doc/ref/corelib/staj_cursor.md`, `others/jsoncons/doc/ref/corelib/write_result.md` -- Widersprüchlich: 9 Dateien. -- Widersprüche mit hoher Relevanz: `others/jsoncons/doc/ref/corelib/byte_string_arg_t.md`, `others/jsoncons/doc/ref/corelib/json_array_arg_t.md`, `others/jsoncons/doc/ref/corelib/json_object_arg_t.md`, `others/jsoncons/doc/ref/jsonpath/flatten.md`, `others/jsoncons/doc/ref/jsonpointer/unflatten_options.md`, `others/jsoncons/doc/ref/jsonschema/json_schema/validate.md`, `others/jsoncons/doc/ref/jsonschema/schema_error.md`, `others/jsoncons/doc/ref/jsonschema/schema_version.md`, `others/jsoncons/doc/ref/toon/decode_toon.md` -- Wahrscheinlich veraltet: 2 Dateien. -- Wahrscheinlich veraltete Referenzen: `others/jsoncons/doc/ref/jsonschema/json_validator.md`, `others/jsoncons/doc/ref/jsonschema/validation_output.md` - -## Performance - -- Hohe Priorität: `others/jsoncons/doc/ref/jsonpath/flatten.md`, `others/jsoncons/doc/ref/jsonpointer/unflatten_options.md`, `others/jsoncons/doc/ref/jsonschema/json_schema/validate.md`, `others/jsoncons/doc/ref/toon/decode_toon.md` -- Mittlere Priorität: `others/jsoncons/doc/ref/corelib/json_type_traits/Eigen-Matrix-example.md`, `others/jsoncons/doc/ref/corelib/reflect/Eigen-Matrix-example.md`, `others/jsoncons/doc/ref/corelib/reflect/uses-allocator-construction-example.md`, `others/jsoncons/doc/ref/jsonschema/jsonschema.md`, `others/jsoncons/doc/ref/bson/basic_bson_cursor.md`, `others/jsoncons/doc/ref/bson/basic_bson_encoder.md`, `others/jsoncons/doc/ref/bson/bson.md`, `others/jsoncons/doc/ref/bson/decode_bson.md`, `others/jsoncons/doc/ref/bson/encode_bson.md`, `others/jsoncons/doc/ref/cbor/basic_cbor_cursor.md`, `others/jsoncons/doc/ref/cbor/basic_cbor_encoder.md`, `others/jsoncons/doc/ref/cbor/cbor.md`, `others/jsoncons/doc/ref/cbor/decode_cbor.md`, `others/jsoncons/doc/ref/cbor/encode_cbor.md`, `others/jsoncons/doc/ref/corelib/basic_json.md`, `others/jsoncons/doc/ref/corelib/basic_json_cursor.md`, `others/jsoncons/doc/ref/corelib/basic_json_encoder.md`, `others/jsoncons/doc/ref/corelib/basic_json_parser.md`, `others/jsoncons/doc/ref/corelib/basic_json_reader.md`, `others/jsoncons/doc/ref/corelib/decode_json.md` -- Bereichsübergreifend auffällig: wiederholte Expression-Kompilierung in JSONPath/JMESPath, wiederholte Reader/Decoder/Encoder-Initialisierung in Convenience-APIs und wiederholtes Pointer-Parsen in string-basierten JSON-Pointer-Overloads. - -## Verarbeitung - -- Hohe Priorität: `others/jsoncons/doc/ref/jsonpointer/unflatten_options.md`, `others/jsoncons/doc/ref/jsonschema/json_schema/validate.md`, `others/jsoncons/doc/ref/toon/decode_toon.md` -- Mittlere Priorität: `others/jsoncons/doc/ref/jsonschema/jsonschema.md`, `others/jsoncons/doc/ref/toon/key_folding_kind.md`, `others/jsoncons/doc/ref/bson/basic_bson_cursor.md`, `others/jsoncons/doc/ref/bson/basic_bson_encoder.md`, `others/jsoncons/doc/ref/bson/bson.md`, `others/jsoncons/doc/ref/bson/decode_bson.md`, `others/jsoncons/doc/ref/bson/encode_bson.md`, `others/jsoncons/doc/ref/cbor/basic_cbor_cursor.md`, `others/jsoncons/doc/ref/cbor/basic_cbor_encoder.md`, `others/jsoncons/doc/ref/cbor/cbor.md`, `others/jsoncons/doc/ref/cbor/decode_cbor.md`, `others/jsoncons/doc/ref/cbor/encode_cbor.md`, `others/jsoncons/doc/ref/corelib/basic_json_cursor.md`, `others/jsoncons/doc/ref/corelib/basic_json_parser.md`, `others/jsoncons/doc/ref/corelib/basic_json_reader.md`, `others/jsoncons/doc/ref/corelib/decode_json.md`, `others/jsoncons/doc/ref/corelib/encode_json.md`, `others/jsoncons/doc/ref/csv/basic_csv_cursor.md`, `others/jsoncons/doc/ref/csv/basic_csv_encoder.md`, `others/jsoncons/doc/ref/csv/basic_csv_reader.md` -- Niedrige Priorität: `others/jsoncons/doc/ref/bson/bson_options.md`, `others/jsoncons/doc/ref/cbor/cbor_options.md`, `others/jsoncons/doc/ref/csv/basic_csv_options.md`, `others/jsoncons/doc/ref/csv/csv_mapping_kind.md`, `others/jsoncons/doc/ref/csv/quote_style_kind.md`, `others/jsoncons/doc/ref/msgpack/msgpack_options.md`, `others/jsoncons/doc/ref/toon/toon_delimiter_kind.md`, `others/jsoncons/doc/ref/toon/toon_options.md`, `others/jsoncons/doc/ref/ubjson/ubjson_options.md` - -## Doku-Anpassungen - -- Hohe Priorität: `others/jsoncons/doc/ref/corelib/byte_string_arg_t.md`, `others/jsoncons/doc/ref/corelib/json_array_arg_t.md`, `others/jsoncons/doc/ref/corelib/json_object_arg_t.md`, `others/jsoncons/doc/ref/jsonpath/flatten.md`, `others/jsoncons/doc/ref/jsonpointer/unflatten_options.md`, `others/jsoncons/doc/ref/jsonschema/json_schema/validate.md`, `others/jsoncons/doc/ref/jsonschema/json_validator.md`, `others/jsoncons/doc/ref/jsonschema/schema_error.md`, `others/jsoncons/doc/ref/jsonschema/schema_version.md`, `others/jsoncons/doc/ref/jsonschema/validation_output.md`, `others/jsoncons/doc/ref/toon/decode_toon.md` -- Mittlere Priorität: `others/jsoncons/doc/Tutorials/Unicode support.md`, `others/jsoncons/doc/ref/corelib/basic_default_json_visitor.md`, `others/jsoncons/doc/ref/corelib/basic_staj_event.md`, `others/jsoncons/doc/ref/corelib/conversion_error.md`, `others/jsoncons/doc/ref/corelib/conversion_result.md`, `others/jsoncons/doc/ref/corelib/json_type_traits/Eigen-Matrix-example.md`, `others/jsoncons/doc/ref/corelib/read_error.md`, `others/jsoncons/doc/ref/corelib/read_result.md`, `others/jsoncons/doc/ref/corelib/reflect/Eigen-Matrix-example.md`, `others/jsoncons/doc/ref/corelib/reflect/uses-allocator-construction-example.md`, `others/jsoncons/doc/ref/corelib/staj_cursor.md`, `others/jsoncons/doc/ref/corelib/write_result.md`, `others/jsoncons/doc/ref/jsonpath/grammar.md`, `others/jsoncons/doc/ref/jsonpath/jsoncons-jsonpath-abnf.md`, `others/jsoncons/doc/ref/jsonpath/jsonpath_grammer.md`, `others/jsoncons/doc/ref/jsonpath/path_node_kind.md`, `others/jsoncons/doc/ref/jsonpointer/jsonpointer_errc.md`, `others/jsoncons/doc/ref/jsonschema/jsonschema.md`, `others/jsoncons/doc/ref/toon/key_folding_kind.md`, `others/jsoncons/doc/ref/bson/basic_bson_cursor.md`, `others/jsoncons/doc/ref/bson/basic_bson_encoder.md`, `others/jsoncons/doc/ref/bson/bson.md`, `others/jsoncons/doc/ref/bson/decode_bson.md`, `others/jsoncons/doc/ref/bson/encode_bson.md`, `others/jsoncons/doc/ref/cbor/basic_cbor_cursor.md`, `others/jsoncons/doc/ref/cbor/basic_cbor_encoder.md`, `others/jsoncons/doc/ref/cbor/cbor.md`, `others/jsoncons/doc/ref/cbor/decode_cbor.md`, `others/jsoncons/doc/ref/cbor/encode_cbor.md`, `others/jsoncons/doc/ref/corelib/basic_json.md` -- Niedrige Priorität: `others/jsoncons/doc/Examples.md`, `others/jsoncons/doc/Pages/index.md`, `others/jsoncons/doc/Reference.md`, `others/jsoncons/doc/Tutorials/Basics.md`, `others/jsoncons/doc/build.md`, `others/jsoncons/doc/ref/bson/bson_options.md`, `others/jsoncons/doc/ref/cbor/cbor_options.md`, `others/jsoncons/doc/ref/corelib/allocator_set.md`, `others/jsoncons/doc/ref/corelib/basic_json_filter.md`, `others/jsoncons/doc/ref/corelib/basic_json_options.md`, `others/jsoncons/doc/ref/corelib/basic_json_visitor.md`, `others/jsoncons/doc/ref/corelib/bigint_chars_format.md`, `others/jsoncons/doc/ref/corelib/bignum_format_kind.md`, `others/jsoncons/doc/ref/corelib/byte_string.md`, `others/jsoncons/doc/ref/corelib/byte_string_arg.md`, `others/jsoncons/doc/ref/corelib/byte_string_chars_format.md`, `others/jsoncons/doc/ref/corelib/byte_string_view.md`, `others/jsoncons/doc/ref/corelib/conv_error.md`, `others/jsoncons/doc/ref/corelib/data-model.md`, `others/jsoncons/doc/ref/corelib/err_handler.md`, `others/jsoncons/doc/ref/corelib/float_chars_format.md`, `others/jsoncons/doc/ref/corelib/half_arg.md`, `others/jsoncons/doc/ref/corelib/half_arg_t.md`, `others/jsoncons/doc/ref/corelib/indenting.md`, `others/jsoncons/doc/ref/corelib/json/allocators.md`, `others/jsoncons/doc/ref/corelib/json/array_range.md`, `others/jsoncons/doc/ref/corelib/json/as.md`, `others/jsoncons/doc/ref/corelib/json/at.md`, `others/jsoncons/doc/ref/corelib/json/constructor.md`, `others/jsoncons/doc/ref/corelib/json/destructor.md` -- Konkrete Schwerpunkte: Include-Pfade korrigieren (`schema_error`, `schema_version`, `decode_toon`, `flatten`, `unflatten_options`, `*_arg_t`), veraltete Seiten (`validation_output`, `json_validator`) bereinigen und fehlerhafte Beispiele (`json_schema/validate`, `jsonschema`) reparieren. diff --git a/analysis/jsoncons/Tutorials/Basics.md b/analysis/jsoncons/Tutorials/Basics.md deleted file mode 100644 index 4426b9bb77..0000000000 --- a/analysis/jsoncons/Tutorials/Basics.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/Tutorials/Basics.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/examples/src/basics_examples.cpp -- others/jsoncons/examples/src/basics_wexamples.cpp -- Relevante Klassen/Funktionen/Symbole: nicht sicher belegbar - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Das Symbol bzw. der Begriff `Basics` kommt in `others/jsoncons/examples/src/basics_examples.cpp` vor. -- Das Symbol bzw. der Begriff `Basics` kommt in `others/jsoncons/examples/src/basics_wexamples.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/examples/src/basics_examples.cpp -- others/jsoncons/examples/src/basics_wexamples.cpp -- Symbole: nicht sicher belegbar -- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/Tutorials/Unicode support.md b/analysis/jsoncons/Tutorials/Unicode support.md deleted file mode 100644 index 620e0c8062..0000000000 --- a/analysis/jsoncons/Tutorials/Unicode support.md +++ /dev/null @@ -1,35 +0,0 @@ -# Analyse: others/jsoncons/doc/Tutorials/Unicode support.md - -## Zugehörige Implementierung -- Relevante Klassen/Funktionen/Symbole: Reading escaped unicode into utf8 encodings and writing back escaped unicode (with continuations) - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: niedrig -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist - -## Prüfung der inhaltlichen Korrektheit -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. -- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- Symbole: Reading escaped unicode into utf8 encodings and writing back escaped unicode (with continuations) -- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/build.md b/analysis/jsoncons/build.md deleted file mode 100644 index 05769d2ddd..0000000000 --- a/analysis/jsoncons/build.md +++ /dev/null @@ -1,43 +0,0 @@ -# Analyse: others/jsoncons/doc/build.md - -## Zugehörige Implementierung -- others/jsoncons/examples/build/cmake/CMakeLists.txt -- Relevante Klassen/Funktionen/Symbole: build - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `build` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp` vor. -- Das Symbol bzw. der Begriff `build` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator_factory_base.hpp` vor. -- Das Symbol bzw. der Begriff `build` kommt in `others/jsoncons/include/jsoncons/config/compiler_support.hpp` vor. -- Das Symbol bzw. der Begriff `build` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/JSON-Schema-Test-Suite/output-tests/README.md`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/examples/build/cmake/CMakeLists.txt -- Symbole: build -- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/ref/bson/basic_bson_cursor.md b/analysis/jsoncons/ref/bson/basic_bson_cursor.md deleted file mode 100644 index 0e955bdc8e..0000000000 --- a/analysis/jsoncons/ref/bson/basic_bson_cursor.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/bson/basic_bson_cursor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp -- others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp -- others/jsoncons/test/bson/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::bson::basic_bson_cursor, basic_bson_cursor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/bson/bson_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `basic_bson_cursor` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `basic_bson_cursor` kommt in `others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/bson/src/bson_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp -- others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp -- others/jsoncons/test/bson/src -- Symbole: jsoncons::bson::basic_bson_cursor, basic_bson_cursor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/bson/src diff --git a/analysis/jsoncons/ref/bson/basic_bson_encoder.md b/analysis/jsoncons/ref/bson/basic_bson_encoder.md deleted file mode 100644 index 06a79b4961..0000000000 --- a/analysis/jsoncons/ref/bson/basic_bson_encoder.md +++ /dev/null @@ -1,55 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/bson/basic_bson_encoder.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp -- others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp -- others/jsoncons/test/bson/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::bson::basic_bson_encoder, basic_bson_encoder, Destructor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/bson/bson_encoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/bson/bson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `basic_bson_encoder` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp -- others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp -- others/jsoncons/test/bson/src -- Symbole: jsoncons::bson::basic_bson_encoder, basic_bson_encoder, Destructor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/bson/src diff --git a/analysis/jsoncons/ref/bson/bson.md b/analysis/jsoncons/ref/bson/bson.md deleted file mode 100644 index 13ba20435b..0000000000 --- a/analysis/jsoncons/ref/bson/bson.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/bson/bson.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_error.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_oid.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_options.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_parser.hpp -- others/jsoncons/test/bson/src -- Relevante Klassen/Funktionen/Symbole: Decode a BSON 128-bit decimal floating point (since 0.165.0), Encode a BSON 128-bit decimal floating point (since 0.165.0) - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/bson/bson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson.hpp` vorhanden. -- Das Symbol bzw. der Begriff `bson` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson.hpp` vor. -- Das Symbol bzw. der Begriff `bson` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `bson` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. -- Das Symbol bzw. der Begriff `bson` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_error.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_oid.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_options.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_parser.hpp -- others/jsoncons/test/bson/src -- Symbole: Decode a BSON 128-bit decimal floating point (since 0.165.0), Encode a BSON 128-bit decimal floating point (since 0.165.0) -- Tests / Beispiele / Benchmarks: others/jsoncons/test/bson/src diff --git a/analysis/jsoncons/ref/bson/bson_options.md b/analysis/jsoncons/ref/bson/bson_options.md deleted file mode 100644 index 13fae235e3..0000000000 --- a/analysis/jsoncons/ref/bson/bson_options.md +++ /dev/null @@ -1,54 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/bson/bson_options.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/bson/bson_options.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_parser.hpp -- others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp -- others/jsoncons/test/bson/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::bson::bson_options, bson_options, Modifiers - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/bson/bson_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson_options.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Modifiers` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `bson_options` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/bson/src/bson_encoder_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/bson/bson_options.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_parser.hpp -- others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp -- others/jsoncons/test/bson/src -- Symbole: jsoncons::bson::bson_options, bson_options, Modifiers -- Tests / Beispiele / Benchmarks: others/jsoncons/test/bson/src diff --git a/analysis/jsoncons/ref/bson/decode_bson.md b/analysis/jsoncons/ref/bson/decode_bson.md deleted file mode 100644 index bd8d5da773..0000000000 --- a/analysis/jsoncons/ref/bson/decode_bson.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/bson/decode_bson.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/bson/bson.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp -- others/jsoncons/test/bson/src/bson_encoder_tests.cpp -- others/jsoncons/test/bson/src/bson_reader_tests.cpp -- others/jsoncons/test/bson/src/bson_test_suite.cpp -- others/jsoncons/test/bson/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::bson::decode_bson, decode_bson - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/bson/bson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `decode_bson` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson.hpp` vor. -- Das Symbol bzw. der Begriff `decode_bson` kommt in `others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp` vor. -- Das Symbol bzw. der Begriff `decode_bson` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/bson/bson.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp -- others/jsoncons/test/bson/src/bson_encoder_tests.cpp -- others/jsoncons/test/bson/src/bson_reader_tests.cpp -- others/jsoncons/test/bson/src/bson_test_suite.cpp -- others/jsoncons/test/bson/src -- Symbole: jsoncons::bson::decode_bson, decode_bson -- Tests / Beispiele / Benchmarks: others/jsoncons/test/bson/src diff --git a/analysis/jsoncons/ref/bson/encode_bson.md b/analysis/jsoncons/ref/bson/encode_bson.md deleted file mode 100644 index 9c32b1dff7..0000000000 --- a/analysis/jsoncons/ref/bson/encode_bson.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/bson/encode_bson.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/bson/bson.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp -- others/jsoncons/test/bson/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::bson::encode_bson, encode_bson, null, bool, int32 - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/bson/bson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/bson/bson.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `null` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `null` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. -- Das Symbol bzw. der Begriff `null` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `null` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/bson/bson.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp -- others/jsoncons/test/bson/src -- Symbole: jsoncons::bson::encode_bson, encode_bson, null, bool, int32 -- Tests / Beispiele / Benchmarks: others/jsoncons/test/bson/src diff --git a/analysis/jsoncons/ref/cbor/basic_cbor_cursor.md b/analysis/jsoncons/ref/cbor/basic_cbor_cursor.md deleted file mode 100644 index 78746a613f..0000000000 --- a/analysis/jsoncons/ref/cbor/basic_cbor_cursor.md +++ /dev/null @@ -1,55 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/cbor/basic_cbor_cursor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp -- others/jsoncons/include/jsoncons_ext/cbor/decode_cbor.hpp -- others/jsoncons/test/cbor/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::cbor::basic_cbor_cursor, basic_cbor_cursor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `basic_cbor_cursor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp -- others/jsoncons/include/jsoncons_ext/cbor/decode_cbor.hpp -- others/jsoncons/test/cbor/src -- Symbole: jsoncons::cbor::basic_cbor_cursor, basic_cbor_cursor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/cbor/src diff --git a/analysis/jsoncons/ref/cbor/basic_cbor_encoder.md b/analysis/jsoncons/ref/cbor/basic_cbor_encoder.md deleted file mode 100644 index 5fa1fc1042..0000000000 --- a/analysis/jsoncons/ref/cbor/basic_cbor_encoder.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/cbor/basic_cbor_encoder.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp -- others/jsoncons/include/jsoncons_ext/cbor/encode_cbor.hpp -- others/jsoncons/test/cbor/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::cbor::basic_cbor_encoder, basic_cbor_encoder, Destructor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor_encoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp -- others/jsoncons/include/jsoncons_ext/cbor/encode_cbor.hpp -- others/jsoncons/test/cbor/src -- Symbole: jsoncons::cbor::basic_cbor_encoder, basic_cbor_encoder, Destructor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/cbor/src diff --git a/analysis/jsoncons/ref/cbor/cbor.md b/analysis/jsoncons/ref/cbor/cbor.md deleted file mode 100644 index e16ea576bd..0000000000 --- a/analysis/jsoncons/ref/cbor/cbor.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/cbor/cbor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_detail.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_error.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_options.hpp -- Relevante Klassen/Funktionen/Symbole: nicht sicher belegbar - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vor. -- Das Symbol bzw. der Begriff `cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_detail.hpp` vor. -- Das Symbol bzw. der Begriff `cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_detail.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_error.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_options.hpp -- Symbole: nicht sicher belegbar -- Tests / Beispiele / Benchmarks: others/jsoncons/test/cbor/src diff --git a/analysis/jsoncons/ref/cbor/cbor_options.md b/analysis/jsoncons/ref/cbor/cbor_options.md deleted file mode 100644 index 4cdc16ba22..0000000000 --- a/analysis/jsoncons/ref/cbor/cbor_options.md +++ /dev/null @@ -1,53 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/cbor/cbor_options.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/cbor/cbor_options.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp -- others/jsoncons/test/cbor/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::cbor::cbor_options, cbor_options, Modifiers - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor_options.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Modifiers` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/cbor/src/cbor_encoder_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/cbor/src/cbor_typed_array_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/cbor/cbor_options.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp -- others/jsoncons/test/cbor/src -- Symbole: jsoncons::cbor::cbor_options, cbor_options, Modifiers -- Tests / Beispiele / Benchmarks: others/jsoncons/test/cbor/src diff --git a/analysis/jsoncons/ref/cbor/decode_cbor.md b/analysis/jsoncons/ref/cbor/decode_cbor.md deleted file mode 100644 index 8be21fd416..0000000000 --- a/analysis/jsoncons/ref/cbor/decode_cbor.md +++ /dev/null @@ -1,55 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/cbor/decode_cbor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/decode_cbor.hpp -- others/jsoncons/test/cbor/src/cbor_bitset_traits_tests.cpp -- others/jsoncons/test/cbor/src/cbor_encoder_tests.cpp -- others/jsoncons/test/cbor/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::cbor::decode_cbor, decode_cbor, Round trip (JSON to CBOR bytes back to JSON) - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `decode_cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vor. -- Das Symbol bzw. der Begriff `decode_cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/decode_cbor.hpp` vor. -- Das Symbol bzw. der Begriff `decode_cbor` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/decode_cbor.hpp -- others/jsoncons/test/cbor/src/cbor_bitset_traits_tests.cpp -- others/jsoncons/test/cbor/src/cbor_encoder_tests.cpp -- others/jsoncons/test/cbor/src -- Symbole: jsoncons::cbor::decode_cbor, decode_cbor, Round trip (JSON to CBOR bytes back to JSON) -- Tests / Beispiele / Benchmarks: others/jsoncons/test/cbor/src diff --git a/analysis/jsoncons/ref/cbor/encode_cbor.md b/analysis/jsoncons/ref/cbor/encode_cbor.md deleted file mode 100644 index 70872641d8..0000000000 --- a/analysis/jsoncons/ref/cbor/encode_cbor.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/cbor/encode_cbor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/encode_cbor.hpp -- others/jsoncons/test/cbor/src/cbor_bitset_traits_tests.cpp -- others/jsoncons/test/cbor/src/cbor_cursor_tests.cpp -- others/jsoncons/test/cbor/src/cbor_encoder_tests.cpp -- others/jsoncons/test/cbor/src/cbor_event_reader_tests.cpp -- others/jsoncons/test/cbor/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::cbor::encode_cbor, encode_cbor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `encode_cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vor. -- Das Symbol bzw. der Begriff `encode_cbor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/encode_cbor.hpp` vor. -- Das Symbol bzw. der Begriff `encode_cbor` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/encode_cbor.hpp -- others/jsoncons/test/cbor/src/cbor_bitset_traits_tests.cpp -- others/jsoncons/test/cbor/src/cbor_cursor_tests.cpp -- others/jsoncons/test/cbor/src/cbor_encoder_tests.cpp -- others/jsoncons/test/cbor/src/cbor_event_reader_tests.cpp -- others/jsoncons/test/cbor/src -- Symbole: jsoncons::cbor::encode_cbor, encode_cbor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/cbor/src diff --git a/analysis/jsoncons/ref/corelib/allocator_set.md b/analysis/jsoncons/ref/corelib/allocator_set.md deleted file mode 100644 index 20622d59ae..0000000000 --- a/analysis/jsoncons/ref/corelib/allocator_set.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/allocator_set.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/allocator_set.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::allocator_set, allocator_set, Accessors - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/allocator_set.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/allocator_set.hpp` vorhanden. -- Das Symbol bzw. der Begriff `allocator_set` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. -- Das Symbol bzw. der Begriff `allocator_set` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `allocator_set` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Das Symbol bzw. der Begriff `allocator_set` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/encode_msgpack_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/allocator_set.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::allocator_set, allocator_set, Accessors -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_default_json_visitor.md b/analysis/jsoncons/ref/corelib/basic_default_json_visitor.md deleted file mode 100644 index dc1ff2082b..0000000000 --- a/analysis/jsoncons/ref/corelib/basic_default_json_visitor.md +++ /dev/null @@ -1,45 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/basic_default_json_visitor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_visitor.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_default_json_visitor, basic_default_json_visitor - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: hoch -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_visitor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_visitor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `basic_default_json_visitor` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `basic_default_json_visitor` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_visitor.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_default_json_visitor, basic_default_json_visitor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json.md b/analysis/jsoncons/ref/corelib/basic_json.md deleted file mode 100644 index 48acef64a4..0000000000 --- a/analysis/jsoncons/ref/corelib/basic_json.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/basic_json.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json, basic_json - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/basic_json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/basic_json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `jsoncons::basic_json` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json, basic_json -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_cursor.md b/analysis/jsoncons/ref/corelib/basic_json_cursor.md deleted file mode 100644 index 083dfabde2..0000000000 --- a/analysis/jsoncons/ref/corelib/basic_json_cursor.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/basic_json_cursor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_cursor, basic_json_cursor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_cursor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `basic_json_cursor` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json_cursor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Bei größeren Verarbeitungsketten sind die Reader-/Visitor-/Cursor-Pfade nachvollziehbarer als mehrfaches Parse-zu-`basic_json` plus nachträgliche Weiterverarbeitung. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json_cursor, basic_json_cursor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_encoder.md b/analysis/jsoncons/ref/corelib/basic_json_encoder.md deleted file mode 100644 index 5f47559e6d..0000000000 --- a/analysis/jsoncons/ref/corelib/basic_json_encoder.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/basic_json_encoder.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_encoder, basic_json_encoder, Destructor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_encoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_encoder.hpp` vorhanden. -- Das Symbol bzw. der Begriff `basic_json_encoder` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json_encoder` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json_encoder` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_event_reader_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json_encoder, basic_json_encoder, Destructor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_filter.md b/analysis/jsoncons/ref/corelib/basic_json_filter.md deleted file mode 100644 index 7fdd8265f7..0000000000 --- a/analysis/jsoncons/ref/corelib/basic_json_filter.md +++ /dev/null @@ -1,53 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/basic_json_filter.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_filter.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/include/jsoncons/json_reader.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_filter, basic_json_filter, Accessors, Inherited from [jsoncons::basic_json_visitor](basic_json_visitor.md) - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_filter.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_filter.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json_filter` kommt in `others/jsoncons/include/jsoncons/json_filter.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_filter.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/include/jsoncons/json_reader.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json_filter, basic_json_filter, Accessors, Inherited from [jsoncons::basic_json_visitor](basic_json_visitor.md) -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_options.md b/analysis/jsoncons/ref/corelib/basic_json_options.md deleted file mode 100644 index f7cb723b56..0000000000 --- a/analysis/jsoncons/ref/corelib/basic_json_options.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/basic_json_options.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_options, basic_json_options, Setters - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `basic_json_options` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json_options` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json_options, basic_json_options, Setters -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_parser.md b/analysis/jsoncons/ref/corelib/basic_json_parser.md deleted file mode 100644 index b264a17a99..0000000000 --- a/analysis/jsoncons/ref/corelib/basic_json_parser.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/basic_json_parser.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_parser, basic_json_parser - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_parser.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_parser.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `basic_json_parser` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json_parser` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json_parser` kommt in `others/jsoncons/include/jsoncons/json_parser.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Bei größeren Verarbeitungsketten sind die Reader-/Visitor-/Cursor-Pfade nachvollziehbarer als mehrfaches Parse-zu-`basic_json` plus nachträgliche Weiterverarbeitung. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json_parser, basic_json_parser -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_reader.md b/analysis/jsoncons/ref/corelib/basic_json_reader.md deleted file mode 100644 index 28489cc7f1..0000000000 --- a/analysis/jsoncons/ref/corelib/basic_json_reader.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/basic_json_reader.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_reader.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_reader, basic_json_reader - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_reader.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_reader.hpp` vorhanden. -- Das Symbol bzw. der Begriff `basic_json_reader` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json_reader` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_subfield_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Bei größeren Verarbeitungsketten sind die Reader-/Visitor-/Cursor-Pfade nachvollziehbarer als mehrfaches Parse-zu-`basic_json` plus nachträgliche Weiterverarbeitung. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_reader.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json_reader, basic_json_reader -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_json_visitor.md b/analysis/jsoncons/ref/corelib/basic_json_visitor.md deleted file mode 100644 index 1a18131dc8..0000000000 --- a/analysis/jsoncons/ref/corelib/basic_json_visitor.md +++ /dev/null @@ -1,45 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/basic_json_visitor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_visitor.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json_visitor, basic_json_visitor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_visitor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_visitor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `basic_json_visitor` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json_visitor` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json_visitor` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json_visitor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_visitor.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json_visitor, basic_json_visitor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/basic_staj_event.md b/analysis/jsoncons/ref/corelib/basic_staj_event.md deleted file mode 100644 index c8149f8eb9..0000000000 --- a/analysis/jsoncons/ref/corelib/basic_staj_event.md +++ /dev/null @@ -1,45 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/basic_staj_event.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_staj_event, basic_staj_event - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: hoch -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/staj_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/staj_cursor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `basic_staj_event` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `basic_staj_event` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `basic_staj_event` kommt in `others/jsoncons/include/jsoncons/staj_event.hpp` vor. -- Das Symbol bzw. der Begriff `basic_staj_event` kommt in `others/jsoncons/include/jsoncons/staj_event_reader.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_staj_event, basic_staj_event -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/bigint_chars_format.md b/analysis/jsoncons/ref/corelib/bigint_chars_format.md deleted file mode 100644 index e7cadfd863..0000000000 --- a/analysis/jsoncons/ref/corelib/bigint_chars_format.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/bigint_chars_format.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::bigint_chars_format (deprecated in 1.0.0), bigint_chars_format (deprecated in 1.0.0), bigint_chars_format - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `bigint_chars_format` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/jsonschema_examples.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::bigint_chars_format (deprecated in 1.0.0), bigint_chars_format (deprecated in 1.0.0), bigint_chars_format -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/bignum_format_kind.md b/analysis/jsoncons/ref/corelib/bignum_format_kind.md deleted file mode 100644 index 04d0060637..0000000000 --- a/analysis/jsoncons/ref/corelib/bignum_format_kind.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/bignum_format_kind.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::bignum_format_kind, bignum_format_kind - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `bignum_format_kind` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. -- Das Symbol bzw. der Begriff `bignum_format_kind` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `jsoncons::bignum_format_kind` kommt in `others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::bignum_format_kind, bignum_format_kind -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/byte_string.md b/analysis/jsoncons/ref/corelib/byte_string.md deleted file mode 100644 index e66c9a1497..0000000000 --- a/analysis/jsoncons/ref/corelib/byte_string.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/byte_string.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/utility/byte_string.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::byte_string, byte_string, Constructor, Assignment, Iterators - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/utility/byte_string.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/utility/byte_string.hpp` vorhanden. -- Das Symbol bzw. der Begriff `byte_string` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `byte_string` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. -- Das Symbol bzw. der Begriff `byte_string` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `byte_string` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/utility/byte_string.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::byte_string, byte_string, Constructor, Assignment, Iterators -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/byte_string_arg.md b/analysis/jsoncons/ref/corelib/byte_string_arg.md deleted file mode 100644 index 6fad220dc3..0000000000 --- a/analysis/jsoncons/ref/corelib/byte_string_arg.md +++ /dev/null @@ -1,53 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/byte_string_arg.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src/json_as_tests.cpp -- others/jsoncons/test/corelib/src/json_assignment_tests.cpp -- others/jsoncons/test/corelib/src/json_const_pointer_arg_tests.cpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::byte_string_arg, byte_string_arg - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_type.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type.hpp` vorhanden. -- Das Symbol bzw. der Begriff `byte_string_arg` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `byte_string_arg` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. -- Das Symbol bzw. der Begriff `byte_string_arg` kommt in `others/jsoncons/include/jsoncons/json_type.hpp` vor. -- Das Symbol bzw. der Begriff `byte_string_arg` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_as_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_assignment_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_const_pointer_arg_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src/json_as_tests.cpp -- others/jsoncons/test/corelib/src/json_assignment_tests.cpp -- others/jsoncons/test/corelib/src/json_const_pointer_arg_tests.cpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::byte_string_arg, byte_string_arg -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/byte_string_arg_t.md b/analysis/jsoncons/ref/corelib/byte_string_arg_t.md deleted file mode 100644 index 2b8721d705..0000000000 --- a/analysis/jsoncons/ref/corelib/byte_string_arg_t.md +++ /dev/null @@ -1,48 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/byte_string_arg_t.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/semantic_tag.hpp -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::byte_string_arg_t, byte_string_arg_t - -## Kurzfazit -- Status: widersprüchlich -- Vertrauensniveau: hoch -- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. - -## Was durch Code belegt ist -- `byte_string_arg_t` ist in [others/jsoncons/include/jsoncons/json_type.hpp](others/jsoncons/include/jsoncons/json_type.hpp) definiert. -- Die Doku nennt als Include `jsoncons/semantic_tag.hpp`; dort ist die Definition nicht vorhanden. -- Der in der Doku verwendete Header `jsoncons/semantic_tag.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/semantic_tag.hpp` vorhanden. -- Das Symbol bzw. der Begriff `byte_string_arg_t` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `byte_string_arg_t` kommt in `others/jsoncons/include/jsoncons/json_type.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die fachliche Beschreibung als Disambiguierungs-Typ für Byte-Strings passt zur Verwendung in `basic_json.hpp` und `json_decoder.hpp`. -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. -- Widerspruch: Der dokumentierte Include-Header ist falsch. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. - -## Vorschläge zur Dokumentationsanpassung -- Include auf `#include ` korrigieren. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/semantic_tag.hpp -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::byte_string_arg_t, byte_string_arg_t -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/byte_string_chars_format.md b/analysis/jsoncons/ref/corelib/byte_string_chars_format.md deleted file mode 100644 index 79a6f7c89c..0000000000 --- a/analysis/jsoncons/ref/corelib/byte_string_chars_format.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/byte_string_chars_format.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::byte_string_chars_format, byte_string_chars_format - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `byte_string_chars_format` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. -- Das Symbol bzw. der Begriff `byte_string_chars_format` kommt in `others/jsoncons/include/jsoncons/json_encoders.hpp` vor. -- Das Symbol bzw. der Begriff `byte_string_chars_format` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `byte_string_chars_format` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::byte_string_chars_format, byte_string_chars_format -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/byte_string_view.md b/analysis/jsoncons/ref/corelib/byte_string_view.md deleted file mode 100644 index 6191b38a01..0000000000 --- a/analysis/jsoncons/ref/corelib/byte_string_view.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/byte_string_view.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/utility/byte_string.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::byte_string_view, byte_string_view, Constructor, Assignment, Iterators - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/utility/byte_string.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/utility/byte_string.hpp` vorhanden. -- Das Symbol bzw. der Begriff `byte_string_view` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `byte_string_view` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. -- Das Symbol bzw. der Begriff `byte_string_view` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_timestamp_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/utility/byte_string.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::byte_string_view, byte_string_view, Constructor, Assignment, Iterators -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/conv_error.md b/analysis/jsoncons/ref/corelib/conv_error.md deleted file mode 100644 index 21518f2cad..0000000000 --- a/analysis/jsoncons/ref/corelib/conv_error.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/conv_error.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/conv_error.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::conv_error, conv_error, Inherited from std::system_error, system_error - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/conv_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/conv_error.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `conv_error` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `conv_error` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. -- Das Symbol bzw. der Begriff `conv_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Das Symbol bzw. der Begriff `conv_error` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/conv_error.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::conv_error, conv_error, Inherited from std::system_error, system_error -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/conversion_error.md b/analysis/jsoncons/ref/corelib/conversion_error.md deleted file mode 100644 index 32f8a7e19e..0000000000 --- a/analysis/jsoncons/ref/corelib/conversion_error.md +++ /dev/null @@ -1,44 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/conversion_error.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/conversion_result.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::conversion_error, conversion_error, Accessors - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: mittel -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/conversion_result.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/conversion_result.hpp` vorhanden. -- Das Symbol bzw. der Begriff `conversion_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Das Symbol bzw. der Begriff `Accessors` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. -- Das Symbol bzw. der Begriff `Accessors` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/conversion_result.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::conversion_error, conversion_error, Accessors -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/conversion_result.md b/analysis/jsoncons/ref/corelib/conversion_result.md deleted file mode 100644 index 01f8a575b5..0000000000 --- a/analysis/jsoncons/ref/corelib/conversion_result.md +++ /dev/null @@ -1,45 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/conversion_result.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/conversion_result.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::conversion_result, conversion_result, Accessors - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: hoch -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/conversion_result.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/conversion_result.hpp` vorhanden. -- Das Symbol bzw. der Begriff `conversion_result` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `conversion_result` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Das Symbol bzw. der Begriff `Accessors` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. -- Das Symbol bzw. der Begriff `Member types` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/conversion_result.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::conversion_result, conversion_result, Accessors -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/data-model.md b/analysis/jsoncons/ref/corelib/data-model.md deleted file mode 100644 index 79cc2f661f..0000000000 --- a/analysis/jsoncons/ref/corelib/data-model.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/data-model.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: data-model - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/jsonschema_examples.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/build/cmake/CMakeLists.txt` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/test/corelib/src -- Symbole: data-model -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/decode_json.md b/analysis/jsoncons/ref/corelib/decode_json.md deleted file mode 100644 index f5e22cf3d5..0000000000 --- a/analysis/jsoncons/ref/corelib/decode_json.md +++ /dev/null @@ -1,55 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/decode_json.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/decode_json.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src/decode_json_using_allocator_tests.cpp -- others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp -- others/jsoncons/test/corelib/src/json_bitset_traits_tests.cpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::decode_json, try_decode_json, decode_json - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/decode_json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/decode_json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `decode_json` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Das Symbol bzw. der Begriff `decode_json` kommt in `others/jsoncons/include/jsoncons/json.hpp` vor. -- Das Symbol bzw. der Begriff `decode_json` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Bei größeren Verarbeitungsketten sind die Reader-/Visitor-/Cursor-Pfade nachvollziehbarer als mehrfaches Parse-zu-`basic_json` plus nachträgliche Weiterverarbeitung. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/decode_json.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src/decode_json_using_allocator_tests.cpp -- others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp -- others/jsoncons/test/corelib/src/json_bitset_traits_tests.cpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::decode_json, try_decode_json, decode_json -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/encode_json.md b/analysis/jsoncons/ref/corelib/encode_json.md deleted file mode 100644 index 854a1beae1..0000000000 --- a/analysis/jsoncons/ref/corelib/encode_json.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/encode_json.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/encode_json.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp -- others/jsoncons/test/corelib/src/json_bitset_traits_tests.cpp -- others/jsoncons/test/corelib/src/json_cursor_tests.cpp -- others/jsoncons/test/corelib/src/json_options_tests.cpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::encode_json, jsoncons::encode_json_pretty, jsoncons::try_encode_json, jsoncons::try_encode_json_pretty, try_encode_json_pretty - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/encode_json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/encode_json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `try_encode_json_pretty` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. -- Das Symbol bzw. der Begriff `encode_json` kommt in `others/jsoncons/include/jsoncons/json.hpp` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Bei größeren Verarbeitungsketten sind die Reader-/Visitor-/Cursor-Pfade nachvollziehbarer als mehrfaches Parse-zu-`basic_json` plus nachträgliche Weiterverarbeitung. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/encode_json.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp -- others/jsoncons/test/corelib/src/json_bitset_traits_tests.cpp -- others/jsoncons/test/corelib/src/json_cursor_tests.cpp -- others/jsoncons/test/corelib/src/json_options_tests.cpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::encode_json, jsoncons::encode_json_pretty, jsoncons::try_encode_json, jsoncons::try_encode_json_pretty, try_encode_json_pretty -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/err_handler.md b/analysis/jsoncons/ref/corelib/err_handler.md deleted file mode 100644 index 9514acb876..0000000000 --- a/analysis/jsoncons/ref/corelib/err_handler.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/err_handler.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: err_handler - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_parser.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_parser.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. -- Das Symbol bzw. der Begriff `err_handler` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `err_handler` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `err_handler` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `err_handler` kommt in `others/jsoncons/include/jsoncons/json_parser.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_parser_recovery_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_parser_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/test/corelib/src -- Symbole: err_handler -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/float_chars_format.md b/analysis/jsoncons/ref/corelib/float_chars_format.md deleted file mode 100644 index 9fff923d90..0000000000 --- a/analysis/jsoncons/ref/corelib/float_chars_format.md +++ /dev/null @@ -1,48 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/float_chars_format.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/test/corelib/src/double_to_string_tests.cpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::float_chars_format, float_chars_format - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. -- Das Symbol bzw. der Begriff `float_chars_format` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `float_chars_format` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `float_chars_format` kommt in `others/jsoncons/include/jsoncons/staj_event.hpp` vor. -- Das Symbol bzw. der Begriff `float_chars_format` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/double_to_string_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/test/corelib/src/double_to_string_tests.cpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::float_chars_format, float_chars_format -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/half_arg.md b/analysis/jsoncons/ref/corelib/half_arg.md deleted file mode 100644 index 9be56136ff..0000000000 --- a/analysis/jsoncons/ref/corelib/half_arg.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/half_arg.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::half_arg, half_arg - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_type.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type.hpp` vorhanden. -- Das Symbol bzw. der Begriff `half_arg` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `half_arg` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. -- Das Symbol bzw. der Begriff `half_arg` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `half_arg` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_const_pointer_arg_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_pointer_arg_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/try_to_json_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::half_arg, half_arg -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/half_arg_t.md b/analysis/jsoncons/ref/corelib/half_arg_t.md deleted file mode 100644 index 7d037fa8ce..0000000000 --- a/analysis/jsoncons/ref/corelib/half_arg_t.md +++ /dev/null @@ -1,45 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/half_arg_t.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/semantic_tag.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::half_arg_t, half_arg_t - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/semantic_tag.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/semantic_tag.hpp` vorhanden. -- Das Symbol bzw. der Begriff `half_arg_t` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `half_arg_t` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. -- Das Symbol bzw. der Begriff `half_arg_t` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `half_arg_t` kommt in `others/jsoncons/include/jsoncons/json_filter.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/cbor/src/cbor_event_visitor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/semantic_tag.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::half_arg_t, half_arg_t -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/indenting.md b/analysis/jsoncons/ref/corelib/indenting.md deleted file mode 100644 index 619ed6a4ef..0000000000 --- a/analysis/jsoncons/ref/corelib/indenting.md +++ /dev/null @@ -1,55 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/indenting.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp -- others/jsoncons/test/corelib/src/json_cursor_tests.cpp -- others/jsoncons/test/corelib/src/reflect/reflect_traits_container_tests.cpp -- others/jsoncons/test/corelib/src/reflect/reflect_traits_gen_functional_tests.cpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::indenting, indenting - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. -- Das Symbol bzw. der Begriff `indenting` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `indenting` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. -- Das Symbol bzw. der Begriff `indenting` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `indenting` kommt in `others/jsoncons/include/jsoncons/pretty_print.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/reflect/reflect_traits_container_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/test/corelib/src/encode_decode_json_tests.cpp -- others/jsoncons/test/corelib/src/json_cursor_tests.cpp -- others/jsoncons/test/corelib/src/reflect/reflect_traits_container_tests.cpp -- others/jsoncons/test/corelib/src/reflect/reflect_traits_gen_functional_tests.cpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::indenting, indenting -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json.md b/analysis/jsoncons/ref/corelib/json.md deleted file mode 100644 index 263e2a11b1..0000000000 --- a/analysis/jsoncons/ref/corelib/json.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/allocator_holder.hpp -- others/jsoncons/include/jsoncons/allocator_set.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/conv_error.hpp -- others/jsoncons/include/jsoncons/conversion_result.hpp -- others/jsoncons/include/jsoncons/decode_json.hpp -- others/jsoncons/include/jsoncons/diagnostics_visitor.hpp -- others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::json, json, Nulls - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `json` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. -- Das Symbol bzw. der Begriff `json` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. -- Das Symbol bzw. der Begriff `jsoncons::json` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `json` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/allocator_holder.hpp -- others/jsoncons/include/jsoncons/allocator_set.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/conv_error.hpp -- others/jsoncons/include/jsoncons/conversion_result.hpp -- others/jsoncons/include/jsoncons/decode_json.hpp -- others/jsoncons/include/jsoncons/diagnostics_visitor.hpp -- others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::json, json, Nulls -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/allocators.md b/analysis/jsoncons/ref/corelib/json/allocators.md deleted file mode 100644 index 8806392a50..0000000000 --- a/analysis/jsoncons/ref/corelib/json/allocators.md +++ /dev/null @@ -1,52 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/allocators.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/src/pmr_allocator_examples.cpp -- others/jsoncons/include/jsoncons/allocator_set.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: Allocators, Propagation - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `allocators` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. -- Das Symbol bzw. der Begriff `allocators` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `allocators` kommt in `others/jsoncons/examples/src/pmr_allocator_examples.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/src/pmr_allocator_examples.cpp -- others/jsoncons/include/jsoncons/allocator_set.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/test/corelib/src -- Symbole: Allocators, Propagation -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/array_range.md b/analysis/jsoncons/ref/corelib/json/array_range.md deleted file mode 100644 index 53da8b40ad..0000000000 --- a/analysis/jsoncons/ref/corelib/json/array_range.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/array_range.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::array_range, array_range - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `array_range` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `array_range` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. -- Das Symbol bzw. der Begriff `array_range` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `array_range` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_test_suite.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/jsonschema_draft201909_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::array_range, array_range -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/as.md b/analysis/jsoncons/ref/corelib/json/as.md deleted file mode 100644 index 10a4d4acf8..0000000000 --- a/analysis/jsoncons/ref/corelib/json/as.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/as.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/conv_error.hpp -- others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::as, jsoncons::basic_json::try_as, try_as, Accessing a json array value as a std::vector, vector - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `try_as` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `vector` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. -- Das Symbol bzw. der Begriff `vector` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. -- Das Symbol bzw. der Begriff `vector` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/conv_error.hpp -- others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::as, jsoncons::basic_json::try_as, try_as, Accessing a json array value as a std::vector, vector -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/at.md b/analysis/jsoncons/ref/corelib/json/at.md deleted file mode 100644 index c242598962..0000000000 --- a/analysis/jsoncons/ref/corelib/json/at.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/at.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/build/cmake/CMakeLists.txt -- others/jsoncons/examples/src/csv_examples.cpp -- others/jsoncons/examples/src/jsonschema_examples.cpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::at - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/jsonschema_examples.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/build/cmake/CMakeLists.txt` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/build/cmake/CMakeLists.txt -- others/jsoncons/examples/src/csv_examples.cpp -- others/jsoncons/examples/src/jsonschema_examples.cpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::at -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/constructor.md b/analysis/jsoncons/ref/corelib/json/constructor.md deleted file mode 100644 index d1fa9a0b2a..0000000000 --- a/analysis/jsoncons/ref/corelib/json/constructor.md +++ /dev/null @@ -1,61 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/constructor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/decode_json.hpp -- others/jsoncons/include/jsoncons/diagnostics_visitor.hpp -- others/jsoncons/include/jsoncons/encode_json.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::basic_json, basic_json, Helpers - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/decode_json.hpp -- others/jsoncons/include/jsoncons/diagnostics_visitor.hpp -- others/jsoncons/include/jsoncons/encode_json.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::basic_json, basic_json, Helpers -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/destructor.md b/analysis/jsoncons/ref/corelib/json/destructor.md deleted file mode 100644 index 24fc42effa..0000000000 --- a/analysis/jsoncons/ref/corelib/json/destructor.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/destructor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/decode_json.hpp -- others/jsoncons/include/jsoncons/diagnostics_visitor.hpp -- others/jsoncons/include/jsoncons/encode_json.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::basic_json, basic_json, destructor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `basic_json` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/decode_json.hpp -- others/jsoncons/include/jsoncons/diagnostics_visitor.hpp -- others/jsoncons/include/jsoncons/encode_json.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::basic_json, basic_json, destructor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/dump.md b/analysis/jsoncons/ref/corelib/json/dump.md deleted file mode 100644 index 0d6426906d..0000000000 --- a/analysis/jsoncons/ref/corelib/json/dump.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/dump.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/encode_json.hpp -- others/jsoncons/include/jsoncons/pretty_print.hpp -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/include/jsoncons/staj_event_reader.hpp -- others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::dump, jsoncons::basic_json::dump_pretty, dump_pretty - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/csv/csv.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vorhanden. -- Das Symbol bzw. der Begriff `dump_pretty` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `dump` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. -- Das Symbol bzw. der Begriff `dump` kommt in `others/jsoncons/include/jsoncons/pretty_print.hpp` vor. -- Das Symbol bzw. der Begriff `dump` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/encode_json.hpp -- others/jsoncons/include/jsoncons/pretty_print.hpp -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/include/jsoncons/staj_event_reader.hpp -- others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp -- Symbole: jsoncons::basic_json::dump, jsoncons::basic_json::dump_pretty, dump_pretty -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/emplace.md b/analysis/jsoncons/ref/corelib/json/emplace.md deleted file mode 100644 index 4f0d22880e..0000000000 --- a/analysis/jsoncons/ref/corelib/json/emplace.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/emplace.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::emplace, emplace - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `emplace` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `emplace` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `emplace` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. -- Das Symbol bzw. der Begriff `emplace` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::emplace, emplace -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/emplace_back.md b/analysis/jsoncons/ref/corelib/json/emplace_back.md deleted file mode 100644 index 51286d1c86..0000000000 --- a/analysis/jsoncons/ref/corelib/json/emplace_back.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/emplace_back.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::emplace_back, emplace_back - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `emplace_back` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `emplace_back` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `emplace_back` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. -- Das Symbol bzw. der Begriff `emplace_back` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::emplace_back, emplace_back -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/erase.md b/analysis/jsoncons/ref/corelib/json/erase.md deleted file mode 100644 index 9ba09d44fa..0000000000 --- a/analysis/jsoncons/ref/corelib/json/erase.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/erase.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::erase, erase, Iterating an array and erasing elements (since 0.168.6), Iterating an object and erasing members (since 0.168.6) - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `erase` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `erase` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. -- Das Symbol bzw. der Begriff `erase` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. -- Das Symbol bzw. der Begriff `erase` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::erase, erase, Iterating an array and erasing elements (since 0.168.6), Iterating an object and erasing members (since 0.168.6) -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/get_value_or.md b/analysis/jsoncons/ref/corelib/json/get_value_or.md deleted file mode 100644 index d86965c3c4..0000000000 --- a/analysis/jsoncons/ref/corelib/json/get_value_or.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/get_value_or.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/src/basics_examples.cpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/detail/optional.hpp -- others/jsoncons/test/corelib/src/json_const_pointer_arg_tests.cpp -- others/jsoncons/test/corelib/src/json_object_tests.cpp -- others/jsoncons/test/corelib/src/json_pointer_arg_tests.cpp -- others/jsoncons/test/csv/src/csv_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::get_value_or, get_value_or - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `get_value_or` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `get_value_or` kommt in `others/jsoncons/include/jsoncons/detail/optional.hpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Das Symbol bzw. der Begriff `get_value_or` kommt in `others/jsoncons/test/csv/src/csv_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/src/basics_examples.cpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/detail/optional.hpp -- others/jsoncons/test/corelib/src/json_const_pointer_arg_tests.cpp -- others/jsoncons/test/corelib/src/json_object_tests.cpp -- others/jsoncons/test/corelib/src/json_pointer_arg_tests.cpp -- others/jsoncons/test/csv/src/csv_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::get_value_or, get_value_or -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/insert.md b/analysis/jsoncons/ref/corelib/json/insert.md deleted file mode 100644 index 8a5f5e08c3..0000000000 --- a/analysis/jsoncons/ref/corelib/json/insert.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/insert.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/encode_json.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons/sink.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::insert, insert, Copy two std::map's into a json - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `insert` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `insert` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. -- Das Symbol bzw. der Begriff `insert` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `insert` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/encode_json.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons/sink.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::insert, insert, Copy two std::map's into a json -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/insert_or_assign.md b/analysis/jsoncons/ref/corelib/json/insert_or_assign.md deleted file mode 100644 index 7c468bda46..0000000000 --- a/analysis/jsoncons/ref/corelib/json/insert_or_assign.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/insert_or_assign.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/test/corelib/src/issue355_tests.cpp -- others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp -- others/jsoncons/test/thirdparty/catch/catch.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::insert_or_assign, insert_or_assign - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `insert_or_assign` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `insert_or_assign` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. -- Das Symbol bzw. der Begriff `insert_or_assign` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `insert_or_assign` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/issue355_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/test/corelib/src/issue355_tests.cpp -- others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp -- others/jsoncons/test/thirdparty/catch/catch.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::insert_or_assign, insert_or_assign -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/is.md b/analysis/jsoncons/ref/corelib/json/is.md deleted file mode 100644 index dda5b250a9..0000000000 --- a/analysis/jsoncons/ref/corelib/json/is.md +++ /dev/null @@ -1,53 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/is.md - -## Zugehörige Implementierung -- others/jsoncons/examples/build/cmake/CMakeLists.txt -- others/jsoncons/examples/src/csv_examples.cpp -- others/jsoncons/examples/src/jsonschema_examples.cpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::is - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/jsonschema_examples.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/build/cmake/CMakeLists.txt` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/jsonschema_examples.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/examples/build/cmake/CMakeLists.txt -- others/jsoncons/examples/src/csv_examples.cpp -- others/jsoncons/examples/src/jsonschema_examples.cpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::is -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/key_value.md b/analysis/jsoncons/ref/corelib/json/key_value.md deleted file mode 100644 index b761f1db70..0000000000 --- a/analysis/jsoncons/ref/corelib/json/key_value.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/key_value.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons/staj_iterator.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::key_value, key_value, Accessors - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `key_value` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `key_value` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. -- Das Symbol bzw. der Begriff `jsoncons::key_value` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. -- Das Symbol bzw. der Begriff `key_value` kommt in `others/jsoncons/include/jsoncons/staj_iterator.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_reader_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_constructor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_object_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons/staj_iterator.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::key_value, key_value, Accessors -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/make_array.md b/analysis/jsoncons/ref/corelib/json/make_array.md deleted file mode 100644 index 08837d8b48..0000000000 --- a/analysis/jsoncons/ref/corelib/json/make_array.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/make_array.md - -## Zugehörige Implementierung -- others/jsoncons/examples/src/array_examples.cpp -- others/jsoncons/examples/src/csv_examples.cpp -- others/jsoncons/examples/src/jsonschema_examples.cpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/test/corelib/src/json_array_tests.cpp -- others/jsoncons/test/corelib/src/json_object_tests.cpp -- others/jsoncons/test/corelib/src/jsoncons_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::make_array, make_array - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `make_array` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Das Symbol bzw. der Begriff `make_array` kommt in `others/jsoncons/test/corelib/src/json_array_tests.cpp` vor. -- Das Symbol bzw. der Begriff `make_array` kommt in `others/jsoncons/test/corelib/src/json_object_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_array_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_object_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/examples/src/array_examples.cpp -- others/jsoncons/examples/src/csv_examples.cpp -- others/jsoncons/examples/src/jsonschema_examples.cpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/test/corelib/src/json_array_tests.cpp -- others/jsoncons/test/corelib/src/json_object_tests.cpp -- others/jsoncons/test/corelib/src/jsoncons_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::make_array, make_array -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/merge.md b/analysis/jsoncons/ref/corelib/json/merge.md deleted file mode 100644 index d08936ad01..0000000000 --- a/analysis/jsoncons/ref/corelib/json/merge.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/merge.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/detail/grisu3.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp -- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::merge, merge - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `merge` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `merge` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. -- Das Symbol bzw. der Begriff `merge` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `merge` kommt in `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/detail/grisu3.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp -- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::merge, merge -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/merge_or_update.md b/analysis/jsoncons/ref/corelib/json/merge_or_update.md deleted file mode 100644 index 519516fee8..0000000000 --- a/analysis/jsoncons/ref/corelib/json/merge_or_update.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/merge_or_update.md - -## Zugehörige Implementierung -- others/jsoncons/examples/src/csv_examples.cpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/test/corelib/src/json_object_tests.cpp -- others/jsoncons/test/corelib/src/json_pointer_arg_tests.cpp -- others/jsoncons/test/corelib/src/ojson_object_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/thirdparty/catch/catch.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::merge_or_update, merge_or_update - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `merge_or_update` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `merge_or_update` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_object_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/examples/src/csv_examples.cpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/test/corelib/src/json_object_tests.cpp -- others/jsoncons/test/corelib/src/json_pointer_arg_tests.cpp -- others/jsoncons/test/corelib/src/ojson_object_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/thirdparty/catch/catch.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::merge_or_update, merge_or_update -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/object_range.md b/analysis/jsoncons/ref/corelib/json/object_range.md deleted file mode 100644 index 5e8dac294f..0000000000 --- a/analysis/jsoncons/ref/corelib/json/object_range.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/object_range.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/path_node.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::object_range, object_range - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `object_range` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `object_range` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. -- Das Symbol bzw. der Begriff `object_range` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `object_range` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/path_node.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::object_range, object_range -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/operator=.md b/analysis/jsoncons/ref/corelib/json/operator=.md deleted file mode 100644 index 623adb18df..0000000000 --- a/analysis/jsoncons/ref/corelib/json/operator=.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/operator=.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/allocator_holder.hpp -- others/jsoncons/include/jsoncons/allocator_set.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/conversion_result.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::operator=, operator=, operator[] - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/allocator_holder.hpp -- others/jsoncons/include/jsoncons/allocator_set.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/conversion_result.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::operator=, operator=, operator[] -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/operator_at.md b/analysis/jsoncons/ref/corelib/json/operator_at.md deleted file mode 100644 index 797b153185..0000000000 --- a/analysis/jsoncons/ref/corelib/json/operator_at.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/operator_at.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/allocator_holder.hpp -- others/jsoncons/include/jsoncons/allocator_set.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/conversion_result.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::operator[], operator[], Notes, operator_at - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. -- Das Symbol bzw. der Begriff `operator[]` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/allocator_holder.hpp -- others/jsoncons/include/jsoncons/allocator_set.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/conversion_result.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::operator[], operator[], Notes, operator_at -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/parse.md b/analysis/jsoncons/ref/corelib/json/parse.md deleted file mode 100644 index ef1e1d60f7..0000000000 --- a/analysis/jsoncons/ref/corelib/json/parse.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/parse.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_error.hpp -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/include/jsoncons/json_reader.hpp -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/include/jsoncons/staj_event.hpp -- others/jsoncons/include/jsoncons/staj_event_reader.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::parse, parse - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `parse` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `parse` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `parse` kommt in `others/jsoncons/include/jsoncons/json_error.hpp` vor. -- Das Symbol bzw. der Begriff `parse` kommt in `others/jsoncons/include/jsoncons/json_parser.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Helfer in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp), [others/jsoncons/include/jsoncons/decode_json.hpp](others/jsoncons/include/jsoncons/decode_json.hpp) und [others/jsoncons/include/jsoncons/encode_json.hpp](others/jsoncons/include/jsoncons/encode_json.hpp) konstruieren Reader/Parser/Decoder bzw. Encoder pro Aufruf. Warum potenziell teuer: Wiederholte Initialisierung kann bei vielen kleinen Dokumenten überproportional ins Gewicht fallen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung der niedrigeren Parser-/Reader-/Encoder-APIs oder der `allocator_set`-Overloads. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_error.hpp -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/include/jsoncons/json_reader.hpp -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/include/jsoncons/staj_event.hpp -- others/jsoncons/include/jsoncons/staj_event_reader.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::parse, parse -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/push_back.md b/analysis/jsoncons/ref/corelib/json/push_back.md deleted file mode 100644 index d5b14c9cef..0000000000 --- a/analysis/jsoncons/ref/corelib/json/push_back.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/push_back.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/include/jsoncons/json_encoders.hpp -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::push_back, push_back - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `push_back` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `push_back` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `push_back` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. -- Das Symbol bzw. der Begriff `push_back` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/test_utilities.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/item_event_visitor.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/include/jsoncons/json_encoder.hpp -- others/jsoncons/include/jsoncons/json_encoders.hpp -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::push_back, push_back -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/range.md b/analysis/jsoncons/ref/corelib/json/range.md deleted file mode 100644 index 6af05b820e..0000000000 --- a/analysis/jsoncons/ref/corelib/json/range.md +++ /dev/null @@ -1,61 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/range.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_exception.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::range, range - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/basic_json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/basic_json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `range` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `range` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. -- Das Symbol bzw. der Begriff `range` kommt in `others/jsoncons/include/jsoncons/json_exception.hpp` vor. -- Das Symbol bzw. der Begriff `range` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_test_suite.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_array.hpp -- others/jsoncons/include/jsoncons/json_exception.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons/json_parser.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::range, range -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json/try_emplace.md b/analysis/jsoncons/ref/corelib/json/try_emplace.md deleted file mode 100644 index 1009a525e1..0000000000 --- a/analysis/jsoncons/ref/corelib/json/try_emplace.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json/try_emplace.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::basic_json::try_emplace, try_emplace - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `try_emplace` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `try_emplace` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. -- Das Symbol bzw. der Begriff `try_emplace` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `try_emplace` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/basic_json.hpp -- others/jsoncons/include/jsoncons/json_object.hpp -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::basic_json::try_emplace, try_emplace -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_array_arg.md b/analysis/jsoncons/ref/corelib/json_array_arg.md deleted file mode 100644 index 752fb3f53d..0000000000 --- a/analysis/jsoncons/ref/corelib/json_array_arg.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json_array_arg.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::json_array_arg, json_array_arg - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_type.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type.hpp` vorhanden. -- Das Symbol bzw. der Begriff `json_array_arg` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `json_array_arg` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. -- Das Symbol bzw. der Begriff `json_array_arg` kommt in `others/jsoncons/include/jsoncons/json_type.hpp` vor. -- Das Symbol bzw. der Begriff `json_array_arg` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::json_array_arg, json_array_arg -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_array_arg_t.md b/analysis/jsoncons/ref/corelib/json_array_arg_t.md deleted file mode 100644 index 1351d21acb..0000000000 --- a/analysis/jsoncons/ref/corelib/json_array_arg_t.md +++ /dev/null @@ -1,46 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json_array_arg_t.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::json_array_arg_t, json_array_arg_t - -## Kurzfazit -- Status: widersprüchlich -- Vertrauensniveau: hoch -- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. - -## Was durch Code belegt ist -- `json_array_arg_t` ist in [others/jsoncons/include/jsoncons/json_type.hpp](others/jsoncons/include/jsoncons/json_type.hpp) definiert. -- Die Doku nennt als Include `jsoncons/semantic_tag.hpp`; dieser Header enthält die Definition nicht. -- Der gezeigte Include-Codeblock ist zudem syntaktisch beschädigt (fehlendes Backtick/fehlerhafte Markup-Sequenz). -- Das Symbol bzw. der Begriff `json_array_arg_t` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `json_array_arg_t` kommt in `others/jsoncons/include/jsoncons/json_type.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die fachliche Beschreibung als Disambiguierungs-Typ für Array-Konstruktoren passt zur Implementierung in `basic_json.hpp`. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. -- Widerspruch: Der dokumentierte Include-Header ist falsch. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. - -## Vorschläge zur Dokumentationsanpassung -- Include auf `#include ` korrigieren. -- Den Codeblock syntaktisch bereinigen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::json_array_arg_t, json_array_arg_t -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_decoder.md b/analysis/jsoncons/ref/corelib/json_decoder.md deleted file mode 100644 index fe413a49ad..0000000000 --- a/analysis/jsoncons/ref/corelib/json_decoder.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json_decoder.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::json_decoder, json_decoder - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_decoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_decoder.hpp` vorhanden. -- Das Symbol bzw. der Begriff `json_decoder` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `jsoncons::json_decoder` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `json_decoder` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_reader_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_test_suite.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_decoder.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::json_decoder, json_decoder -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_error.md b/analysis/jsoncons/ref/corelib/json_error.md deleted file mode 100644 index aa7b36d52d..0000000000 --- a/analysis/jsoncons/ref/corelib/json_error.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json_error.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_error.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::json_errc, json_errc, json_error - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_error.hpp` vorhanden. -- Das Symbol bzw. der Begriff `json_errc` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `json_errc` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `json_errc` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. -- Das Symbol bzw. der Begriff `json_errc` kommt in `others/jsoncons/include/jsoncons/json_encoders.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_error.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::json_errc, json_errc, json_error -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_object_arg.md b/analysis/jsoncons/ref/corelib/json_object_arg.md deleted file mode 100644 index 6018f86bb7..0000000000 --- a/analysis/jsoncons/ref/corelib/json_object_arg.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json_object_arg.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::json_object_arg, json_object_arg - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_type.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type.hpp` vorhanden. -- Das Symbol bzw. der Begriff `json_object_arg` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `json_object_arg` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. -- Das Symbol bzw. der Begriff `json_object_arg` kommt in `others/jsoncons/include/jsoncons/json_type.hpp` vor. -- Das Symbol bzw. der Begriff `json_object_arg` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/abort_early_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/json_schema_walk_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::json_object_arg, json_object_arg -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_object_arg_t.md b/analysis/jsoncons/ref/corelib/json_object_arg_t.md deleted file mode 100644 index e5db5c9663..0000000000 --- a/analysis/jsoncons/ref/corelib/json_object_arg_t.md +++ /dev/null @@ -1,48 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json_object_arg_t.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/semantic_tag.hpp -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::json_object_arg_t, json_object_arg_t - -## Kurzfazit -- Status: widersprüchlich -- Vertrauensniveau: hoch -- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. - -## Was durch Code belegt ist -- `json_object_arg_t` ist in [others/jsoncons/include/jsoncons/json_type.hpp](others/jsoncons/include/jsoncons/json_type.hpp) definiert. -- Die Doku nennt als Include `jsoncons/semantic_tag.hpp`; dort ist die Definition nicht vorhanden. -- Der in der Doku verwendete Header `jsoncons/semantic_tag.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/semantic_tag.hpp` vorhanden. -- Das Symbol bzw. der Begriff `json_object_arg_t` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `json_object_arg_t` kommt in `others/jsoncons/include/jsoncons/json_type.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die Beschreibung als Disambiguierungs-Typ für Objekt-Konstruktoren passt zu den Konstruktoren in `basic_json.hpp`. -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. -- Widerspruch: Der dokumentierte Include-Header ist falsch. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. - -## Vorschläge zur Dokumentationsanpassung -- Include auf `#include ` korrigieren. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/semantic_tag.hpp -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::json_object_arg_t, json_object_arg_t -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_type.md b/analysis/jsoncons/ref/corelib/json_type.md deleted file mode 100644 index e858e1f91a..0000000000 --- a/analysis/jsoncons/ref/corelib/json_type.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json_type.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::json_type, json_type - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_type.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type.hpp` vorhanden. -- Das Symbol bzw. der Begriff `json_type` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. -- Das Symbol bzw. der Begriff `json_type` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `json_type` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `json_type` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/issues/draft2019-09/anyof.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/jsoncons_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_type.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::json_type, json_type -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_type_traits/Eigen-Matrix-example.md b/analysis/jsoncons/ref/corelib/json_type_traits/Eigen-Matrix-example.md deleted file mode 100644 index 52a0e59aaf..0000000000 --- a/analysis/jsoncons/ref/corelib/json_type_traits/Eigen-Matrix-example.md +++ /dev/null @@ -1,46 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json_type_traits/Eigen-Matrix-example.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/json_type_traits.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: Eigen::Matrix examples, Eigen-Matrix-example - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: mittel -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. -- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/json_type_traits.hpp -- others/jsoncons/test/corelib/src -- Symbole: Eigen::Matrix examples, Eigen-Matrix-example -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_type_traits/built-in-specializations.md b/analysis/jsoncons/ref/corelib/json_type_traits/built-in-specializations.md deleted file mode 100644 index 2ce1d7c508..0000000000 --- a/analysis/jsoncons/ref/corelib/json_type_traits/built-in-specializations.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json_type_traits/built-in-specializations.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp -- others/jsoncons/include/jsoncons/json_type_traits.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: integer, duration - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/cbor/cbor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `integer` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `integer` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. -- Das Symbol bzw. der Begriff `integer` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `integer` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp -- others/jsoncons/include/jsoncons/json_type_traits.hpp -- others/jsoncons/test/corelib/src -- Symbole: integer, duration -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_type_traits/custom-specializations.md b/analysis/jsoncons/ref/corelib/json_type_traits/custom-specializations.md deleted file mode 100644 index ba3fdf4a22..0000000000 --- a/analysis/jsoncons/ref/corelib/json_type_traits/custom-specializations.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json_type_traits/custom-specializations.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/json_type_traits.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: Extend json_type_traits to support boost::gregorian dates. - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/jsonschema_examples.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/build/cmake/CMakeLists.txt` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/json_type_traits.hpp -- others/jsoncons/test/corelib/src -- Symbole: Extend json_type_traits to support boost::gregorian dates. -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/json_type_traits/json_type_traits.md b/analysis/jsoncons/ref/corelib/json_type_traits/json_type_traits.md deleted file mode 100644 index bef6d38729..0000000000 --- a/analysis/jsoncons/ref/corelib/json_type_traits/json_type_traits.md +++ /dev/null @@ -1,53 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/json_type_traits/json_type_traits.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_type_traits.hpp -- others/jsoncons/test/corelib/src/legacy_json_type_traits_tests.cpp -- others/jsoncons/test/corelib/src/reflect/encode_traits_tests.cpp -- others/jsoncons/test/corelib/src/try_decode_json_tests.cpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::json_type_traits, json_type_traits - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_type_traits.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type_traits.hpp` vorhanden. -- Das Symbol bzw. der Begriff `json_type_traits` kommt in `others/jsoncons/include/jsoncons/json_type_traits.hpp` vor. -- Das Symbol bzw. der Begriff `json_type_traits` kommt in `others/jsoncons/include/jsoncons/reflect/encode_traits.hpp` vor. -- Das Symbol bzw. der Begriff `json_type_traits` kommt in `others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp` vor. -- Das Symbol bzw. der Begriff `jsoncons::json_type_traits` kommt in `others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/legacy_json_type_traits_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/try_decode_json_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_type_traits.hpp -- others/jsoncons/test/corelib/src/legacy_json_type_traits_tests.cpp -- others/jsoncons/test/corelib/src/reflect/encode_traits_tests.cpp -- others/jsoncons/test/corelib/src/try_decode_json_tests.cpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::json_type_traits, json_type_traits -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/line_split_kind.md b/analysis/jsoncons/ref/corelib/line_split_kind.md deleted file mode 100644 index d5902bd4d1..0000000000 --- a/analysis/jsoncons/ref/corelib/line_split_kind.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/line_split_kind.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/test/corelib/src/json_line_split_tests.cpp -- others/jsoncons/test/corelib/src/json_options_tests.cpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::line_split_kind, line_split_kind - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_options.hpp` vorhanden. -- Das Symbol bzw. der Begriff `line_split_kind` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. -- Das Symbol bzw. der Begriff `line_split_kind` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `jsoncons::line_split_kind` kommt in `others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp` vor. -- Das Symbol bzw. der Begriff `line_split_kind` kommt in `others/jsoncons/test/corelib/src/json_line_split_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_line_split_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_options_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/test/corelib/src/json_line_split_tests.cpp -- others/jsoncons/test/corelib/src/json_options_tests.cpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::line_split_kind, line_split_kind -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/ojson.md b/analysis/jsoncons/ref/corelib/ojson.md deleted file mode 100644 index 89c1b87647..0000000000 --- a/analysis/jsoncons/ref/corelib/ojson.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/ojson.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::ojson, ojson - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `jsoncons::ojson` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `ojson` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `ojson` kommt in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp` vor. -- Das Symbol bzw. der Begriff `jsoncons::ojson` kommt in `others/jsoncons/test/toon/src/decode_toon_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::ojson, ojson -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/read_error.md b/analysis/jsoncons/ref/corelib/read_error.md deleted file mode 100644 index 48a2f0ef36..0000000000 --- a/analysis/jsoncons/ref/corelib/read_error.md +++ /dev/null @@ -1,45 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/read_error.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/ser_utils.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::read_error, read_error, Accessors - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: hoch -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/ser_utils.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/ser_utils.hpp` vorhanden. -- Das Symbol bzw. der Begriff `read_error` kommt in `others/jsoncons/include/jsoncons/ser_utils.hpp` vor. -- Das Symbol bzw. der Begriff `Accessors` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. -- Das Symbol bzw. der Begriff `Accessors` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. -- Das Symbol bzw. der Begriff `read_error` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/ser_utils.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::read_error, read_error, Accessors -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/read_result.md b/analysis/jsoncons/ref/corelib/read_result.md deleted file mode 100644 index 41ce232fd1..0000000000 --- a/analysis/jsoncons/ref/corelib/read_result.md +++ /dev/null @@ -1,45 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/read_result.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/ser_utils.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::read_result, read_result, Accessors - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: hoch -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/ser_utils.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/ser_utils.hpp` vorhanden. -- Das Symbol bzw. der Begriff `read_result` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Das Symbol bzw. der Begriff `read_result` kommt in `others/jsoncons/include/jsoncons/ser_utils.hpp` vor. -- Das Symbol bzw. der Begriff `read_result` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `read_result` kommt in `others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/ser_utils.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::read_result, read_result, Accessors -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/reflect.md b/analysis/jsoncons/ref/corelib/reflect.md deleted file mode 100644 index b71153d58c..0000000000 --- a/analysis/jsoncons/ref/corelib/reflect.md +++ /dev/null @@ -1,43 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/reflect.md - -## Zugehörige Implementierung -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: Legacy jsoncons::json_type_traits, json_type_traits, jsoncons::reflect::json_conv_traits, json_conv_traits - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `json_conv_traits` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `reflect` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Das Symbol bzw. der Begriff `reflect` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. -- Das Symbol bzw. der Begriff `reflect` kommt in `others/jsoncons/include/jsoncons/json.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/legacy_json_type_traits_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/try_decode_json_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/test/corelib/src -- Symbole: Legacy jsoncons::json_type_traits, json_type_traits, jsoncons::reflect::json_conv_traits, json_conv_traits -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/reflect/Eigen-Matrix-example.md b/analysis/jsoncons/ref/corelib/reflect/Eigen-Matrix-example.md deleted file mode 100644 index a3982edb20..0000000000 --- a/analysis/jsoncons/ref/corelib/reflect/Eigen-Matrix-example.md +++ /dev/null @@ -1,52 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/reflect/Eigen-Matrix-example.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp -- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: Eigen::Matrix examples, Eigen-Matrix-example - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: hoch -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. -- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp -- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp -- others/jsoncons/test/corelib/src -- Symbole: Eigen::Matrix examples, Eigen-Matrix-example -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/reflect/json_conv_traits.md b/analysis/jsoncons/ref/corelib/reflect/json_conv_traits.md deleted file mode 100644 index aacea6b1c3..0000000000 --- a/analysis/jsoncons/ref/corelib/reflect/json_conv_traits.md +++ /dev/null @@ -1,55 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/reflect/json_conv_traits.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::reflect::json_conv_traits, json_conv_traits, Remarks - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/reflect/json_conv_traits.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `json_conv_traits` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `json_conv_traits` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. -- Das Symbol bzw. der Begriff `json_conv_traits` kommt in `others/jsoncons/include/jsoncons/reflect/decode_traits.hpp` vor. -- Das Symbol bzw. der Begriff `json_conv_traits` kommt in `others/jsoncons/include/jsoncons/reflect/encode_traits.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::reflect::json_conv_traits, json_conv_traits, Remarks -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/reflect/reflect-traits-gen.md b/analysis/jsoncons/ref/corelib/reflect/reflect-traits-gen.md deleted file mode 100644 index ceee5aecc2..0000000000 --- a/analysis/jsoncons/ref/corelib/reflect/reflect-traits-gen.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/reflect/reflect-traits-gen.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_type_traits.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp -- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: Example with std::shared_ptr, std::unique_ptr and std::optional - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_type_traits.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_type_traits.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `optional` kommt in `others/jsoncons/include/jsoncons/staj_iterator.hpp` vor. -- Das Symbol bzw. der Begriff `optional` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `optional` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp` vor. -- Das Symbol bzw. der Begriff `optional` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_type_traits.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp -- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp -- others/jsoncons/test/corelib/src -- Symbole: Example with std::shared_ptr, std::unique_ptr and std::optional -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/reflect/uses-allocator-construction-example.md b/analysis/jsoncons/ref/corelib/reflect/uses-allocator-construction-example.md deleted file mode 100644 index 0d57b0b67b..0000000000 --- a/analysis/jsoncons/ref/corelib/reflect/uses-allocator-construction-example.md +++ /dev/null @@ -1,52 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/reflect/uses-allocator-construction-example.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp -- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: Uses-allocator construction example (requires 1.4.0), uses-allocator-construction-example - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: hoch -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. -- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Trait-basierten Pfade in `decode_json.hpp`/`encode_json.hpp` delegieren direkt an `reflect::decode_traits` bzw. `reflect::encode_traits`. Warum potenziell teuer: Ein Umweg über ein temporäres `basic_json` wäre zusätzlicher Aufwand. Mögliche Verbesserung: Wenn möglich direkt die trait-basierten Decode-/Encode-Pfade statt Parse-zu-`basic_json` plus manueller Konvertierung nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons/reflect/decode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/encode_traits.hpp -- others/jsoncons/include/jsoncons/reflect/json_conv_traits.hpp -- others/jsoncons/include/jsoncons/reflect/reflect_traits_gen.hpp -- others/jsoncons/test/corelib/src -- Symbole: Uses-allocator construction example (requires 1.4.0), uses-allocator-construction-example -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/rename_object_key_filter.md b/analysis/jsoncons/ref/corelib/rename_object_key_filter.md deleted file mode 100644 index 4a9f77a4cb..0000000000 --- a/analysis/jsoncons/ref/corelib/rename_object_key_filter.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/rename_object_key_filter.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_filter.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::rename_object_key_filter, rename_object_key_filter - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_filter.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_filter.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `rename_object_key_filter` kommt in `others/jsoncons/include/jsoncons/json_filter.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_filter.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::rename_object_key_filter, rename_object_key_filter -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/semantic_tag.md b/analysis/jsoncons/ref/corelib/semantic_tag.md deleted file mode 100644 index 0084adb482..0000000000 --- a/analysis/jsoncons/ref/corelib/semantic_tag.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/semantic_tag.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/semantic_tag.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::semantic_tag, semantic_tag - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/semantic_tag.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/semantic_tag.hpp` vorhanden. -- Das Symbol bzw. der Begriff `semantic_tag` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `semantic_tag` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `semantic_tag` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. -- Das Symbol bzw. der Begriff `semantic_tag` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_event_reader_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/semantic_tag.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::semantic_tag, semantic_tag -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/ser_context.md b/analysis/jsoncons/ref/corelib/ser_context.md deleted file mode 100644 index 8b9fe7f011..0000000000 --- a/analysis/jsoncons/ref/corelib/ser_context.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/ser_context.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/ser_utils.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::ser_context, ser_context - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/ser_utils.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/ser_utils.hpp` vorhanden. -- Das Symbol bzw. der Begriff `ser_context` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `ser_context` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `ser_context` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. -- Das Symbol bzw. der Begriff `ser_context` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/ser_utils.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::ser_context, ser_context -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/ser_error.md b/analysis/jsoncons/ref/corelib/ser_error.md deleted file mode 100644 index e8afa36263..0000000000 --- a/analysis/jsoncons/ref/corelib/ser_error.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/ser_error.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json_exception.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::ser_error, ser_error, Inherited from std::system_error, system_error - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json_exception.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json_exception.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `ser_error` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Das Symbol bzw. der Begriff `ser_error` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json_exception.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::ser_error, ser_error, Inherited from std::system_error, system_error -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/spaces_option.md b/analysis/jsoncons/ref/corelib/spaces_option.md deleted file mode 100644 index 381cf3a315..0000000000 --- a/analysis/jsoncons/ref/corelib/spaces_option.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/spaces_option.md - -## Zugehörige Implementierung -- others/jsoncons/test/corelib/src/json_encoder_tests.cpp -- others/jsoncons/test/corelib/src/json_line_split_tests.cpp -- others/jsoncons/test/corelib/src/json_options_tests.cpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::spaces_option, spaces_option - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `spaces_option` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. -- Das Symbol bzw. der Begriff `spaces_option` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `spaces_option` kommt in `others/jsoncons/test/corelib/src/json_encoder_tests.cpp` vor. -- Das Symbol bzw. der Begriff `spaces_option` kommt in `others/jsoncons/test/corelib/src/json_line_split_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_encoder_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_line_split_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/json_options_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/test/corelib/src/json_encoder_tests.cpp -- others/jsoncons/test/corelib/src/json_line_split_tests.cpp -- others/jsoncons/test/corelib/src/json_options_tests.cpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::spaces_option, spaces_option -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/staj_array_iterator.md b/analysis/jsoncons/ref/corelib/staj_array_iterator.md deleted file mode 100644 index 4f9ee59325..0000000000 --- a/analysis/jsoncons/ref/corelib/staj_array_iterator.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/staj_array_iterator.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/staj_iterator.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::staj_array_iterator, staj_array_iterator - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/staj_iterator.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/staj_iterator.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `staj_array_iterator` kommt in `others/jsoncons/include/jsoncons/staj_iterator.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/staj_iterator.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::staj_array_iterator, staj_array_iterator -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/staj_cursor.md b/analysis/jsoncons/ref/corelib/staj_cursor.md deleted file mode 100644 index 0979774424..0000000000 --- a/analysis/jsoncons/ref/corelib/staj_cursor.md +++ /dev/null @@ -1,45 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/staj_cursor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::staj_cursor, staj_cursor, Destructor - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: hoch -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/staj_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/staj_cursor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `staj_cursor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `staj_cursor` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `staj_cursor` kommt in `others/jsoncons/include/jsoncons/staj_iterator.hpp` vor. -- Das Symbol bzw. der Begriff `staj_cursor` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::staj_cursor, staj_cursor, Destructor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/staj_event_type.md b/analysis/jsoncons/ref/corelib/staj_event_type.md deleted file mode 100644 index d10c1e55da..0000000000 --- a/analysis/jsoncons/ref/corelib/staj_event_type.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/staj_event_type.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::staj_event_type, staj_event_type - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/staj_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/staj_cursor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `staj_event_type` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `staj_event_type` kommt in `others/jsoncons/include/jsoncons/staj_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `staj_event_type` kommt in `others/jsoncons/include/jsoncons/staj_event.hpp` vor. -- Das Symbol bzw. der Begriff `staj_event_type` kommt in `others/jsoncons/include/jsoncons/staj_event_reader.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_event_reader_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/staj_cursor.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::staj_event_type, staj_event_type -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/staj_object_iterator.md b/analysis/jsoncons/ref/corelib/staj_object_iterator.md deleted file mode 100644 index 8e4200dec7..0000000000 --- a/analysis/jsoncons/ref/corelib/staj_object_iterator.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/staj_object_iterator.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/staj_iterator.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::staj_object_iterator, staj_object_iterator - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/staj_iterator.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/staj_iterator.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `staj_object_iterator` kommt in `others/jsoncons/include/jsoncons/staj_iterator.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/staj_iterator_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/staj_iterator.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::staj_object_iterator, staj_object_iterator -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/utility/bigint.md b/analysis/jsoncons/ref/corelib/utility/bigint.md deleted file mode 100644 index 17a93492a5..0000000000 --- a/analysis/jsoncons/ref/corelib/utility/bigint.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/utility/bigint.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/utility/bigint.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::bigint, bigint, Constructor, Assignment, Accessors - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/utility/bigint.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/utility/bigint.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `bigint` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `bigint` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. -- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `bigint` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/utility/bigint.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::bigint, bigint, Constructor, Assignment, Accessors -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/utility/uri.md b/analysis/jsoncons/ref/corelib/utility/uri.md deleted file mode 100644 index fbb0a4330b..0000000000 --- a/analysis/jsoncons/ref/corelib/utility/uri.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/utility/uri.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/utility/uri.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/include/jsoncons/semantic_tag.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_parser.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::uri, uri, Constructor, Assignment - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/utility/uri.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/utility/uri.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `uri` kommt in `others/jsoncons/include/jsoncons/semantic_tag.hpp` vor. -- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/utility/uri.hpp -- others/jsoncons/include/jsoncons/json_cursor.hpp -- others/jsoncons/include/jsoncons/json_options.hpp -- others/jsoncons/include/jsoncons/semantic_tag.hpp -- others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_encoder.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_event_reader.hpp -- others/jsoncons/include/jsoncons_ext/cbor/cbor_parser.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::uri, uri, Constructor, Assignment -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/wjson.md b/analysis/jsoncons/ref/corelib/wjson.md deleted file mode 100644 index 97b1830feb..0000000000 --- a/analysis/jsoncons/ref/corelib/wjson.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/wjson.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::wjson, wjson - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `jsoncons::wjson` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `wjson` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `wjson` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `wjson` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::wjson, wjson -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/wojson.md b/analysis/jsoncons/ref/corelib/wojson.md deleted file mode 100644 index a6676fc390..0000000000 --- a/analysis/jsoncons/ref/corelib/wojson.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/wojson.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src/json_literal_operator_tests.cpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::wojson, wojson - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `jsoncons::wojson` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `wojson` kommt in `others/jsoncons/test/corelib/src/json_literal_operator_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `basic_json` stellt in [others/jsoncons/include/jsoncons/basic_json.hpp](others/jsoncons/include/jsoncons/basic_json.hpp) explizite Kapazitäts-APIs (`reserve`, `capacity`, `shrink_to_fit`) für Objekte und Arrays bereit. Warum potenziell teuer: Ohne Reservierung können wiederholte Einfügungen zusätzliche Reallokationen auslösen. Mögliche Verbesserung: mögliche Optimierung durch frühzeitiges `reserve()` bei bekannter Zielgröße. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/corelib/src/json_literal_operator_tests.cpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::wojson, wojson -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/corelib/write_result.md b/analysis/jsoncons/ref/corelib/write_result.md deleted file mode 100644 index 71e8c7ad4d..0000000000 --- a/analysis/jsoncons/ref/corelib/write_result.md +++ /dev/null @@ -1,45 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/corelib/write_result.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/ser_utils.hpp -- others/jsoncons/test/corelib/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::write_result, write_result, Accessors - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: hoch -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/ser_utils.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/ser_utils.hpp` vorhanden. -- Das Symbol bzw. der Begriff `write_result` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `write_result` kommt in `others/jsoncons/include/jsoncons/encode_json.hpp` vor. -- Das Symbol bzw. der Begriff `write_result` kommt in `others/jsoncons/include/jsoncons/ser_utils.hpp` vor. -- Das Symbol bzw. der Begriff `write_result` kommt in `others/jsoncons/include/jsoncons_ext/bson/encode_bson.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/ser_utils.hpp -- others/jsoncons/test/corelib/src -- Symbole: jsoncons::write_result, write_result, Accessors -- Tests / Beispiele / Benchmarks: others/jsoncons/test/corelib/src diff --git a/analysis/jsoncons/ref/csv/basic_csv_cursor.md b/analysis/jsoncons/ref/csv/basic_csv_cursor.md deleted file mode 100644 index e7972a7ae3..0000000000 --- a/analysis/jsoncons/ref/csv/basic_csv_cursor.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/csv/basic_csv_cursor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp -- others/jsoncons/test/csv/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::basic_csv_cursor, basic_csv_cursor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/csv/csv_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp -- others/jsoncons/test/csv/src -- Symbole: jsoncons::csv::basic_csv_cursor, basic_csv_cursor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/basic_csv_encoder.md b/analysis/jsoncons/ref/csv/basic_csv_encoder.md deleted file mode 100644 index e38a69451c..0000000000 --- a/analysis/jsoncons/ref/csv/basic_csv_encoder.md +++ /dev/null @@ -1,53 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/csv/basic_csv_encoder.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/test/csv/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::basic_csv_encoder, basic_csv_encoder, Destructor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/csv/csv_encoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/test/csv/src -- Symbole: jsoncons::csv::basic_csv_encoder, basic_csv_encoder, Destructor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/basic_csv_options.md b/analysis/jsoncons/ref/csv/basic_csv_options.md deleted file mode 100644 index 23621aad25..0000000000 --- a/analysis/jsoncons/ref/csv/basic_csv_options.md +++ /dev/null @@ -1,53 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/csv/basic_csv_options.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp -- others/jsoncons/test/csv/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::basic_csv_options, basic_csv_options, Setters - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/csv/csv_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/csv/csv.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp -- others/jsoncons/test/csv/src -- Symbole: jsoncons::csv::basic_csv_options, basic_csv_options, Setters -- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/basic_csv_reader.md b/analysis/jsoncons/ref/csv/basic_csv_reader.md deleted file mode 100644 index c69f9947c4..0000000000 --- a/analysis/jsoncons/ref/csv/basic_csv_reader.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/csv/basic_csv_reader.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/csv/csv_reader.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/test/csv/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::basic_csv_reader, basic_csv_reader - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/csv/csv_reader.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv_reader.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_reader_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/csv/csv_reader.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/test/csv/src -- Symbole: jsoncons::csv::basic_csv_reader, basic_csv_reader -- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/csv.md b/analysis/jsoncons/ref/csv/csv.md deleted file mode 100644 index 3c38d2ad9d..0000000000 --- a/analysis/jsoncons/ref/csv/csv.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/csv/csv.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_error.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_reader.hpp -- others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp -- others/jsoncons/test/csv/src -- Relevante Klassen/Funktionen/Symbole: csv - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/csv/csv.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vorhanden. -- Das Symbol bzw. der Begriff `csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vor. -- Das Symbol bzw. der Begriff `csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp` vor. -- Das Symbol bzw. der Begriff `csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_error.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_cursor.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_error.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_reader.hpp -- others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp -- others/jsoncons/test/csv/src -- Symbole: csv -- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/csv_mapping_kind.md b/analysis/jsoncons/ref/csv/csv_mapping_kind.md deleted file mode 100644 index d679a1aba1..0000000000 --- a/analysis/jsoncons/ref/csv/csv_mapping_kind.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/csv/csv_mapping_kind.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp -- others/jsoncons/test/csv/src/csv_cursor_tests.cpp -- others/jsoncons/test/csv/src/csv_reader_tests.cpp -- others/jsoncons/test/csv/src/csv_subfield_tests.cpp -- others/jsoncons/test/csv/src/csv_tests.cpp -- others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp -- others/jsoncons/test/csv/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::csv_mapping_kind, csv_mapping_kind - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/csv/csv_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vorhanden. -- Das Symbol bzw. der Begriff `csv_mapping_kind` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vor. -- Das Symbol bzw. der Begriff `csv_mapping_kind` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp` vor. -- Das Symbol bzw. der Begriff `csv_mapping_kind` kommt in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp` vor. -- Das Symbol bzw. der Begriff `csv_mapping_kind` kommt in `others/jsoncons/test/csv/src/csv_cursor_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_reader_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp -- others/jsoncons/test/csv/src/csv_cursor_tests.cpp -- others/jsoncons/test/csv/src/csv_reader_tests.cpp -- others/jsoncons/test/csv/src/csv_subfield_tests.cpp -- others/jsoncons/test/csv/src/csv_tests.cpp -- others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp -- others/jsoncons/test/csv/src -- Symbole: jsoncons::csv::csv_mapping_kind, csv_mapping_kind -- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/decode_csv.md b/analysis/jsoncons/ref/csv/decode_csv.md deleted file mode 100644 index 7acde4ddbb..0000000000 --- a/analysis/jsoncons/ref/csv/decode_csv.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/csv/decode_csv.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp -- others/jsoncons/test/csv/src/csv_subfield_tests.cpp -- others/jsoncons/test/csv/src/csv_tests.cpp -- others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp -- others/jsoncons/test/csv/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::decode_csv, decode_csv, Decode a CSV file with type inference (default) - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/csv/csv.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `decode_csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vor. -- Das Symbol bzw. der Begriff `decode_csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp` vor. -- Das Symbol bzw. der Begriff `decode_csv` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/csv/decode_csv.hpp -- others/jsoncons/test/csv/src/csv_subfield_tests.cpp -- others/jsoncons/test/csv/src/csv_tests.cpp -- others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp -- others/jsoncons/test/csv/src -- Symbole: jsoncons::csv::decode_csv, decode_csv, Decode a CSV file with type inference (default) -- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/encode_csv.md b/analysis/jsoncons/ref/csv/encode_csv.md deleted file mode 100644 index 72f75f6027..0000000000 --- a/analysis/jsoncons/ref/csv/encode_csv.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/csv/encode_csv.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/src/csv_examples.cpp -- others/jsoncons/include/jsoncons_ext/csv/encode_csv.hpp -- others/jsoncons/test/csv/src/csv_cursor_tests.cpp -- others/jsoncons/test/csv/src/csv_tests.cpp -- others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp -- others/jsoncons/test/csv/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::encode_csv, encode_csv, Encode a json array of arrays (n_rows format), Encode a json object of name-array members (m_columns format) - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/csv/csv.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `encode_csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv.hpp` vor. -- Das Symbol bzw. der Begriff `encode_csv` kommt in `others/jsoncons/include/jsoncons_ext/csv/encode_csv.hpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Das Symbol bzw. der Begriff `encode_csv` kommt in `others/jsoncons/test/csv/src/csv_cursor_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/csv/csv.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/src/csv_examples.cpp -- others/jsoncons/include/jsoncons_ext/csv/encode_csv.hpp -- others/jsoncons/test/csv/src/csv_cursor_tests.cpp -- others/jsoncons/test/csv/src/csv_tests.cpp -- others/jsoncons/test/csv/src/encode_decode_csv_tests.cpp -- others/jsoncons/test/csv/src -- Symbole: jsoncons::csv::encode_csv, encode_csv, Encode a json array of arrays (n_rows format), Encode a json object of name-array members (m_columns format) -- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/csv/quote_style_kind.md b/analysis/jsoncons/ref/csv/quote_style_kind.md deleted file mode 100644 index d2f21f8e9b..0000000000 --- a/analysis/jsoncons/ref/csv/quote_style_kind.md +++ /dev/null @@ -1,52 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/csv/quote_style_kind.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/examples/src/csv_examples.cpp -- others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp -- others/jsoncons/test/csv/src/csv_tests.cpp -- others/jsoncons/test/csv/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::csv::quote_style_kind, quote_style_kind - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/csv/csv_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vorhanden. -- Das Symbol bzw. der Begriff `quote_style_kind` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp` vor. -- Das Symbol bzw. der Begriff `quote_style_kind` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vor. -- Das Symbol bzw. der Begriff `quote_style_kind` kommt in `others/jsoncons/test/csv/src/csv_tests.cpp` vor. -- Das Symbol bzw. der Begriff `quote_style_kind` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/csv/src/csv_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp -- others/jsoncons/examples/src/csv_examples.cpp -- others/jsoncons/include/jsoncons_ext/csv/csv_encoder.hpp -- others/jsoncons/test/csv/src/csv_tests.cpp -- others/jsoncons/test/csv/src -- Symbole: jsoncons::csv::quote_style_kind, quote_style_kind -- Tests / Beispiele / Benchmarks: others/jsoncons/test/csv/src diff --git a/analysis/jsoncons/ref/deprecated.md b/analysis/jsoncons/ref/deprecated.md deleted file mode 100644 index bd7ee24361..0000000000 --- a/analysis/jsoncons/ref/deprecated.md +++ /dev/null @@ -1,39 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/deprecated.md - -## Zugehörige Implementierung -- Relevante Klassen/Funktionen/Symbole: deprecated - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `deprecated` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `deprecated` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_type.hpp` vor. -- Das Symbol bzw. der Begriff `deprecated` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/draft201909/schema_draft201909.hpp` vor. -- Das Symbol bzw. der Begriff `deprecated` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/draft202012/schema_draft202012.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- Symbole: deprecated -- Tests / Beispiele / Benchmarks: keine direkt zugeordneten Treffer gefunden diff --git a/analysis/jsoncons/ref/jmespath/jmespath.md b/analysis/jsoncons/ref/jmespath/jmespath.md deleted file mode 100644 index f49f61ebe0..0000000000 --- a/analysis/jsoncons/ref/jmespath/jmespath.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jmespath/jmespath.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp -- others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/jmespath/src -- Relevante Klassen/Funktionen/Symbole: Classes, Functions - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `jmespath_expression` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `jmespath` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp` vor. -- Das Symbol bzw. der Begriff `jmespath_expression` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `Classes` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `search()` in [others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp](others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp) kompiliert den Ausdruck pro Aufruf neu. Warum potenziell teuer: Wiederholtes Parsen/Kompilieren desselben JMESPath-Ausdrucks erzeugt vermeidbare Arbeit. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jmespath_expression` via `make_expression`. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für wiederkehrende JMESPath-Ausdrücke ist der Datenfluss klarer, wenn die Expression einmal kompiliert und danach nur noch ausgewertet wird. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp -- others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/jmespath/src -- Symbole: Classes, Functions -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jmespath/src diff --git a/analysis/jsoncons/ref/jmespath/jmespath_errc.md b/analysis/jsoncons/ref/jmespath/jmespath_errc.md deleted file mode 100644 index 2a4d9708f5..0000000000 --- a/analysis/jsoncons/ref/jmespath/jmespath_errc.md +++ /dev/null @@ -1,55 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jmespath/jmespath_errc.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp -- others/jsoncons/examples/src/jmespath_custom_function_examples.cpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp -- others/jsoncons/test/jmespath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jmespath::jmespath_errc, jmespath_errc - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp` vorhanden. -- Das Symbol bzw. der Begriff `jmespath_errc` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `jsoncons::jmespath::jmespath_errc` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp` vor. -- Das Symbol bzw. der Begriff `jmespath_errc` kommt in `others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp` vor. -- Das Symbol bzw. der Begriff `jmespath_errc` kommt in `others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/jmespath_custom_function_examples.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp -- others/jsoncons/examples/src/jmespath_custom_function_examples.cpp -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_let_tests.cpp -- others/jsoncons/test/jmespath/src -- Symbole: jsoncons::jmespath::jmespath_errc, jmespath_errc -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jmespath/src diff --git a/analysis/jsoncons/ref/jmespath/jmespath_error.md b/analysis/jsoncons/ref/jmespath/jmespath_error.md deleted file mode 100644 index c2d3eb4a3e..0000000000 --- a/analysis/jsoncons/ref/jmespath/jmespath_error.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jmespath/jmespath_error.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp -- others/jsoncons/test/jmespath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jmespath::jmespath_error, jmespath_error, Inherited from std::system_error, system_error - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp` vorhanden. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp -- others/jsoncons/test/jmespath/src -- Symbole: jsoncons::jmespath::jmespath_error, jmespath_error, Inherited from std::system_error, system_error -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jmespath/src diff --git a/analysis/jsoncons/ref/jmespath/jmespath_expression.md b/analysis/jsoncons/ref/jmespath/jmespath_expression.md deleted file mode 100644 index 38b8145de0..0000000000 --- a/analysis/jsoncons/ref/jmespath/jmespath_expression.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jmespath/jmespath_expression.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/examples/src/jmespath_examples.cpp -- others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp -- others/jsoncons/test/jmespath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jmespath::jmespath_expression, jmespath_expression - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `jmespath_expression` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `Member types` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. -- Das Symbol bzw. der Begriff `jmespath_expression` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `search()` in [others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp](others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp) kompiliert den Ausdruck pro Aufruf neu. Warum potenziell teuer: Wiederholtes Parsen/Kompilieren desselben JMESPath-Ausdrucks erzeugt vermeidbare Arbeit. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jmespath_expression` via `make_expression`. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/examples/src/jmespath_examples.cpp -- others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp -- others/jsoncons/test/jmespath/src -- Symbole: jsoncons::jmespath::jmespath_expression, jmespath_expression -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jmespath/src diff --git a/analysis/jsoncons/ref/jmespath/make_expression.md b/analysis/jsoncons/ref/jmespath/make_expression.md deleted file mode 100644 index 44478f94dd..0000000000 --- a/analysis/jsoncons/ref/jmespath/make_expression.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jmespath/make_expression.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/test/jmespath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jmespath::make_expression, make_expression - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `make_expression` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `make_expression` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. -- Das Symbol bzw. der Begriff `make_expression` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `search()` in [others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp](others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp) kompiliert den Ausdruck pro Aufruf neu. Warum potenziell teuer: Wiederholtes Parsen/Kompilieren desselben JMESPath-Ausdrucks erzeugt vermeidbare Arbeit. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jmespath_expression` via `make_expression`. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für wiederkehrende JMESPath-Ausdrücke ist der Datenfluss klarer, wenn die Expression einmal kompiliert und danach nur noch ausgewertet wird. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/test/jmespath/src -- Symbole: jsoncons::jmespath::make_expression, make_expression -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jmespath/src diff --git a/analysis/jsoncons/ref/jmespath/search.md b/analysis/jsoncons/ref/jmespath/search.md deleted file mode 100644 index c81a96375c..0000000000 --- a/analysis/jsoncons/ref/jmespath/search.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jmespath/search.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/jmespath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jmespath::search, search - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jmespath/jmespath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `search` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `search` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Das Symbol bzw. der Begriff `search` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp` vor. -- Das Symbol bzw. der Begriff `search` kommt in `others/jsoncons/include/jsoncons/detail/string_view.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_custom_function_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `search()` in [others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp](others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp) kompiliert den Ausdruck pro Aufruf neu. Warum potenziell teuer: Wiederholtes Parsen/Kompilieren desselben JMESPath-Ausdrucks erzeugt vermeidbare Arbeit. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jmespath_expression` via `make_expression`. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für wiederkehrende JMESPath-Ausdrücke ist der Datenfluss klarer, wenn die Expression einmal kompiliert und danach nur noch ausgewertet wird. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp -- others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp -- others/jsoncons/test/jmespath/src/jmespath_tests.cpp -- others/jsoncons/test/jmespath/src -- Symbole: jsoncons::jmespath::search, search -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jmespath/src diff --git a/analysis/jsoncons/ref/jsonpatch/apply_patch.md b/analysis/jsoncons/ref/jsonpatch/apply_patch.md deleted file mode 100644 index 70fac622bc..0000000000 --- a/analysis/jsoncons/ref/jsonpatch/apply_patch.md +++ /dev/null @@ -1,55 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpatch/apply_patch.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/src/jsonpatch_examples.cpp -- others/jsoncons/test/jsonpatch/src/jsonpatch_test_suite.cpp -- others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp -- others/jsoncons/test/jsonpatch/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpatch::apply_patch, apply_patch - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpatch/jsonpatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `apply_patch` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Das Symbol bzw. der Begriff `apply_patch` kommt in `others/jsoncons/test/jsonschema/src/jsonschema_defaults_tests.cpp` vor. -- Das Symbol bzw. der Begriff `apply_patch` kommt in `others/jsoncons/test/jsonpatch/src/jsonpatch_test_suite.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/src/jsonpatch_examples.cpp -- others/jsoncons/test/jsonpatch/src/jsonpatch_test_suite.cpp -- others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp -- others/jsoncons/test/jsonpatch/src -- Symbole: jsoncons::jsonpatch::apply_patch, apply_patch -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpatch/src diff --git a/analysis/jsoncons/ref/jsonpatch/from_diff.md b/analysis/jsoncons/ref/jsonpatch/from_diff.md deleted file mode 100644 index e26b77cc63..0000000000 --- a/analysis/jsoncons/ref/jsonpatch/from_diff.md +++ /dev/null @@ -1,53 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpatch/from_diff.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/src/jsonpatch_examples.cpp -- others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp -- others/jsoncons/test/jsonpatch/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpatch::from_diff, from_diff - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpatch/jsonpatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vor. -- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp` vor. -- Das Symbol bzw. der Begriff `jsoncons::jsonpatch::from_diff` kommt in `others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/src/jsonpatch_examples.cpp -- others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp -- others/jsoncons/test/jsonpatch/src -- Symbole: jsoncons::jsonpatch::from_diff, from_diff -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpatch/src diff --git a/analysis/jsoncons/ref/jsonpatch/jsonpatch.md b/analysis/jsoncons/ref/jsonpatch/jsonpatch.md deleted file mode 100644 index 40624147a2..0000000000 --- a/analysis/jsoncons/ref/jsonpatch/jsonpatch.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpatch/jsonpatch.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp -- others/jsoncons/test/jsonpatch/src -- Relevante Klassen/Funktionen/Symbole: jsonpatch - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpatch/jsonpatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vorhanden. -- Das Symbol bzw. der Begriff `jsonpatch` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Das Symbol bzw. der Begriff `jsonpatch` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vor. -- Das Symbol bzw. der Begriff `jsonpatch` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `jsonpatch` kommt in `others/jsoncons/test/jsonschema/src/custom_message_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp -- others/jsoncons/test/jsonpatch/src -- Symbole: jsonpatch -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpatch/src diff --git a/analysis/jsoncons/ref/jsonpatch/jsonpatch_errc.md b/analysis/jsoncons/ref/jsonpatch/jsonpatch_errc.md deleted file mode 100644 index bc0519fefc..0000000000 --- a/analysis/jsoncons/ref/jsonpatch/jsonpatch_errc.md +++ /dev/null @@ -1,48 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpatch/jsonpatch_errc.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp -- others/jsoncons/test/jsonpatch/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpatch::jsonpatch_errc, jsonpatch_errc - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: mittel -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpatch/jsonpatch_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vorhanden. -- Das Symbol bzw. der Begriff `jsonpatch_errc` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Das Symbol bzw. der Begriff `jsoncons::jsonpatch::jsonpatch_errc` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vor. -- Das Symbol bzw. der Begriff `jsonpatch_errc` kommt in `others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp -- others/jsoncons/test/jsonpatch/src -- Symbole: jsoncons::jsonpatch::jsonpatch_errc, jsonpatch_errc -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpatch/src diff --git a/analysis/jsoncons/ref/jsonpatch/jsonpatch_error.md b/analysis/jsoncons/ref/jsonpatch/jsonpatch_error.md deleted file mode 100644 index 2bc44bc902..0000000000 --- a/analysis/jsoncons/ref/jsonpatch/jsonpatch_error.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpatch/jsonpatch_error.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/test/jsonpatch/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpatch::jsonpatch_error, jsonpatch_error, Inherited from std::system_error, system_error - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpatch/jsonpatch_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpatch/jsonpatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vorhanden. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp -- others/jsoncons/test/jsonpatch/src -- Symbole: jsoncons::jsonpatch::jsonpatch_error, jsonpatch_error, Inherited from std::system_error, system_error -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpatch/src diff --git a/analysis/jsoncons/ref/jsonpath/basic_json_location.md b/analysis/jsoncons/ref/jsonpath/basic_json_location.md deleted file mode 100644 index c69ad583ec..0000000000 --- a/analysis/jsoncons/ref/jsonpath/basic_json_location.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/basic_json_location.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::basic_json_location, basic_json_location, operator=, Iterators - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::basic_json_location, basic_json_location, operator=, Iterators -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/basic_path_element.md b/analysis/jsoncons/ref/jsonpath/basic_path_element.md deleted file mode 100644 index 3a6bb6ba92..0000000000 --- a/analysis/jsoncons/ref/jsonpath/basic_path_element.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/basic_path_element.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::basic_path_element, basic_path_element, operator=, Accessors - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::basic_path_element, basic_path_element, operator=, Accessors -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/basic_path_node.md b/analysis/jsoncons/ref/jsonpath/basic_path_node.md deleted file mode 100644 index d70af745f6..0000000000 --- a/analysis/jsoncons/ref/jsonpath/basic_path_node.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/basic_path_node.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::basic_path_node, basic_path_node, operator=, Accessors - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::basic_path_node, basic_path_node, operator=, Accessors -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/flatten.md b/analysis/jsoncons/ref/jsonpath/flatten.md deleted file mode 100644 index 556743db02..0000000000 --- a/analysis/jsoncons/ref/jsonpath/flatten.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/flatten.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/test/jsonpath/src/jsonpath_flatten_tests.cpp -- Relevante Klassen/Funktionen/Symbole: jsonpath::flatten, jsonpath::unflatten - -## Kurzfazit -- Status: widersprüchlich -- Vertrauensniveau: mittel -- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. - -## Was durch Code belegt ist -- Die Funktionen `flatten` und `unflatten` sind in [others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp) implementiert. -- Der Beispielcode in der Doku verwendet `#include `, und dieser Header existiert im Repository. -- Der im Kopf der Doku genannte Include-Pfad `jsoncons_ext/jsonpath/filter.hpp` existiert im Repository nicht. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. -- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. -- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die API-Funktionen selbst sind vorhanden und fachlich der jsonpath-Erweiterung zugeordnet. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. -- Widerspruch: Der dokumentierte Include-Pfad im Kopf ist veraltet oder falsch. -- Widerspruch: Der dokumentierte Include-Pfad `jsoncons_ext/jsonpath/filter.hpp` ist im aktuellen Repository nicht vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `flatten`/`unflatten` materialisieren komplette Zwischenstrukturen. Warum potenziell teuer: Der gesamte Baum bzw. das gesamte Pointer-/Path-Objekt wird in einem Schritt aufgebaut. Mögliche Verbesserung: nur prüfenwerte Optimierung durch Einsatz der Pointer-Variante, wenn bereits pointer-normalisierte Schlüssel vorliegen; ein gemessener Engpass ist im Repository nicht belegt. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Den Kopf-Header auf `jsoncons_ext/jsonpath/flatten.hpp` oder auf den im Beispiel bereits verwendeten Aggregate-Header `jsoncons_ext/jsonpath/jsonpath.hpp` umstellen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/test/jsonpath/src/jsonpath_flatten_tests.cpp -- Symbole: jsonpath::flatten, jsonpath::unflatten -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/abs.md b/analysis/jsoncons/ref/jsonpath/functions/abs.md deleted file mode 100644 index 9abc2f1de5..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/abs.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/abs.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: abs - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `abs` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `abs` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Das Symbol bzw. der Begriff `abs` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp` vor. -- Das Symbol bzw. der Begriff `abs` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/issues/draft2019-09/anyof.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/JSON-Schema-Test-Suite/output-tests/README.md`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: abs -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/avg.md b/analysis/jsoncons/ref/jsonpath/functions/avg.md deleted file mode 100644 index ebfccc1f65..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/avg.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/avg.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/examples/src/jsonpath_examples.cpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: avg - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `avg` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `avg` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/examples/src/csv_examples.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/examples/src/jsonpath_examples.cpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: avg -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/ceil.md b/analysis/jsoncons/ref/jsonpath/functions/ceil.md deleted file mode 100644 index 891856514b..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/ceil.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/ceil.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/examples/src/jsonpath_examples.cpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: ceil - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `ceil` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `ceil` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Das Symbol bzw. der Begriff `ceil` kommt in `others/jsoncons/include/jsoncons/detail/grisu3.hpp` vor. -- Das Symbol bzw. der Begriff `ceil` kommt in `others/jsoncons/include/jsoncons/utility/bigint.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/examples/src/jsonpath_examples.cpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: ceil -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/contains.md b/analysis/jsoncons/ref/jsonpath/functions/contains.md deleted file mode 100644 index b2df0e9841..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/contains.md +++ /dev/null @@ -1,55 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/contains.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: contains - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. -- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: contains -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/ends_with.md b/analysis/jsoncons/ref/jsonpath/functions/ends_with.md deleted file mode 100644 index 9dd5a175f0..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/ends_with.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/ends_with.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: ends_with - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `ends_with` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `ends_with` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Das Symbol bzw. der Begriff `ends_with` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp` vor. -- Das Symbol bzw. der Begriff `ends_with` kommt in `others/jsoncons/include/jsoncons/utility/string_utils.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/utility/string_utils_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: ends_with -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/floor.md b/analysis/jsoncons/ref/jsonpath/functions/floor.md deleted file mode 100644 index a8eda00954..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/floor.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/floor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/examples/src/jsonpath_examples.cpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: floor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `floor` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `floor` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Das Symbol bzw. der Begriff `floor` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/examples/src/jsonpath_examples.cpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: floor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/keys.md b/analysis/jsoncons/ref/jsonpath/functions/keys.md deleted file mode 100644 index 0be5ae1846..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/keys.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/keys.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: keys - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `keys` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. -- Das Symbol bzw. der Begriff `keys` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `keys` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Das Symbol bzw. der Begriff `keys` kommt in `others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/issues/draft2019-09/anyof.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_flatten_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: keys -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/length.md b/analysis/jsoncons/ref/jsonpath/functions/length.md deleted file mode 100644 index 80cc25f6a4..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/length.md +++ /dev/null @@ -1,53 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/length.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: length - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `length` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `length` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `length` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor2.hpp` vor. -- Das Symbol bzw. der Begriff `length` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: length -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/max.md b/analysis/jsoncons/ref/jsonpath/functions/max.md deleted file mode 100644 index 8525107bf9..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/max.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/max.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: max - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `max` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `max` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `max` kommt in `others/jsoncons/include/jsoncons/json_encoder.hpp` vor. -- Das Symbol bzw. der Begriff `max` kommt in `others/jsoncons/include/jsoncons/json_error.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: max -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/min.md b/analysis/jsoncons/ref/jsonpath/functions/min.md deleted file mode 100644 index 08c439a06d..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/min.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/min.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: min - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `min` kommt in `others/jsoncons/include/jsoncons/json_parser.hpp` vor. -- Das Symbol bzw. der Begriff `min` kommt in `others/jsoncons/include/jsoncons/source.hpp` vor. -- Das Symbol bzw. der Begriff `min` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. -- Das Symbol bzw. der Begriff `min` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_reader_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: min -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/prod.md b/analysis/jsoncons/ref/jsonpath/functions/prod.md deleted file mode 100644 index cee33cf556..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/prod.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/prod.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: prod - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `prod` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. -- Das Symbol bzw. der Begriff `prod` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_parser.hpp` vor. -- Das Symbol bzw. der Begriff `prod` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Das Symbol bzw. der Begriff `prod` kommt in `others/jsoncons/include/jsoncons/utility/bigint.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/schema_version_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/JSON-Schema-Test-Suite/output-tests/README.md`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: prod -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/starts_with.md b/analysis/jsoncons/ref/jsonpath/functions/starts_with.md deleted file mode 100644 index 6d61775a34..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/starts_with.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/starts_with.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: starts_with - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `starts_with` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `starts_with` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Das Symbol bzw. der Begriff `starts_with` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp` vor. -- Das Symbol bzw. der Begriff `starts_with` kommt in `others/jsoncons/include/jsoncons/utility/string_utils.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_expression_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/corelib/src/utility/string_utils_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: starts_with -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/sum.md b/analysis/jsoncons/ref/jsonpath/functions/sum.md deleted file mode 100644 index eb114d900c..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/sum.md +++ /dev/null @@ -1,55 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/sum.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: sum - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `sum` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. -- Das Symbol bzw. der Begriff `sum` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vor. -- Das Symbol bzw. der Begriff `sum` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_parser.hpp` vor. -- Das Symbol bzw. der Begriff `sum` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: sum -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/to_number.md b/analysis/jsoncons/ref/jsonpath/functions/to_number.md deleted file mode 100644 index 771f93ad43..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/to_number.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/to_number.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: to_number - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `to_number` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `to_number` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Das Symbol bzw. der Begriff `to_number` kommt in `others/jsoncons/include/jsoncons/utility/read_number.hpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/jsonschema_examples.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: to_number -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/functions/tokenize.md b/analysis/jsoncons/ref/jsonpath/functions/tokenize.md deleted file mode 100644 index ed59880726..0000000000 --- a/analysis/jsoncons/ref/jsonpath/functions/tokenize.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/functions/tokenize.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/examples/src/jsonpath_examples.cpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: tokenize - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `tokenize` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/toon/src/encode_toon_tests.cpp` vor. -- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp` vor. -- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/examples/src/jsonpath_examples.cpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: tokenize -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/get.md b/analysis/jsoncons/ref/jsonpath/get.md deleted file mode 100644 index 2638dc32f0..0000000000 --- a/analysis/jsoncons/ref/jsonpath/get.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/get.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::get, get - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. -- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. -- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/decode_toon_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::get, get -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/grammar.md b/analysis/jsoncons/ref/jsonpath/grammar.md deleted file mode 100644 index 9c36c9f817..0000000000 --- a/analysis/jsoncons/ref/jsonpath/grammar.md +++ /dev/null @@ -1,39 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/grammar.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: grammar - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: niedrig -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist - -## Prüfung der inhaltlichen Korrektheit -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. -- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: grammar -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/json_query.md b/analysis/jsoncons/ref/jsonpath/json_query.md deleted file mode 100644 index 67eb3e4bb1..0000000000 --- a/analysis/jsoncons/ref/jsonpath/json_query.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/json_query.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_flatten_tests.cpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::json_query, json_query - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/json_query.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `json_query` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. -- Das Symbol bzw. der Begriff `json_query` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vor. -- Das Symbol bzw. der Begriff `Callback` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp` vor. -- Das Symbol bzw. der Begriff `Callback` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die Verarbeitung wiederkehrender Ausdrücke lässt sich robuster und klarer über `make_expression` plus Wiederverwendung derselben Expression strukturieren als über wiederholte ad-hoc-Strings. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_flatten_tests.cpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::json_query, json_query -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/json_replace.md b/analysis/jsoncons/ref/jsonpath/json_replace.md deleted file mode 100644 index 1e0af4796e..0000000000 --- a/analysis/jsoncons/ref/jsonpath/json_replace.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/json_replace.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/examples/src/jsonpath_examples.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_json_replace_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::json_replace, json_replace - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/json_query.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `json_replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. -- Das Symbol bzw. der Begriff `json_replace` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Das Symbol bzw. der Begriff `jsoncons::jsonpath::json_replace` kommt in `others/jsoncons/test/jsonpath/src/jsonpath_json_replace_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die Verarbeitung wiederkehrender Ausdrücke lässt sich robuster und klarer über `make_expression` plus Wiederverwendung derselben Expression strukturieren als über wiederholte ad-hoc-Strings. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/examples/src/jsonpath_examples.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_json_replace_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::json_replace, json_replace -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsoncons-jsonpath-abnf.md b/analysis/jsoncons/ref/jsonpath/jsoncons-jsonpath-abnf.md deleted file mode 100644 index d459e1a898..0000000000 --- a/analysis/jsoncons/ref/jsonpath/jsoncons-jsonpath-abnf.md +++ /dev/null @@ -1,39 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/jsoncons-jsonpath-abnf.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons-jsonpath-abnf - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: niedrig -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist - -## Prüfung der inhaltlichen Korrektheit -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. -- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons-jsonpath-abnf -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath.md b/analysis/jsoncons/ref/jsonpath/jsonpath.md deleted file mode 100644 index 92e1bcd4cc..0000000000 --- a/analysis/jsoncons/ref/jsonpath/jsonpath.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: Classes, Functions - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `jsonpath` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_error.hpp` vor. -- Das Symbol bzw. der Begriff `jsonpath` kommt in `others/jsoncons/include/jsoncons_ext/csv/csv_options.hpp` vor. -- Das Symbol bzw. der Begriff `jsonpath` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp` vor. -- Das Symbol bzw. der Begriff `jsonpath` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die Verarbeitung wiederkehrender Ausdrücke lässt sich robuster und klarer über `make_expression` plus Wiederverwendung derselben Expression strukturieren als über wiederholte ad-hoc-Strings. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: Classes, Functions -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_error.md b/analysis/jsoncons/ref/jsonpath/jsonpath_error.md deleted file mode 100644 index da6e459317..0000000000 --- a/analysis/jsoncons/ref/jsonpath/jsonpath_error.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_error.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::jsonpath_error, jsonpath_error, Inherited from std::system_error, system_error - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp` vorhanden. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_error.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::jsonpath_error, jsonpath_error, Inherited from std::system_error, system_error -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_expression.md b/analysis/jsoncons/ref/jsonpath/jsonpath_expression.md deleted file mode 100644 index 82c0342f0a..0000000000 --- a/analysis/jsoncons/ref/jsonpath/jsonpath_expression.md +++ /dev/null @@ -1,53 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_expression.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::jsonpath_expression, jsonpath_expression - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `jsonpath_expression` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. -- Das Symbol bzw. der Begriff `jsonpath_expression` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp` vor. -- Das Symbol bzw. der Begriff `Non-member functions` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. -- Das Symbol bzw. der Begriff `jsonpath_expression` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_flatten_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::jsonpath_expression, jsonpath_expression -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_expression/evaluate.md b/analysis/jsoncons/ref/jsonpath/jsonpath_expression/evaluate.md deleted file mode 100644 index 3640a968c1..0000000000 --- a/analysis/jsoncons/ref/jsonpath/jsonpath_expression/evaluate.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_expression/evaluate.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::jsonpath_expression::evaluate, evaluate - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `evaluate` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `evaluate` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `evaluate` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. -- Das Symbol bzw. der Begriff `evaluate` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::jsonpath_expression::evaluate, evaluate -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_expression/select.md b/analysis/jsoncons/ref/jsonpath/jsonpath_expression/select.md deleted file mode 100644 index 94c3cc9c00..0000000000 --- a/analysis/jsoncons/ref/jsonpath/jsonpath_expression/select.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_expression/select.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::jsonpath_expression::select, select, Receive locations and values selected from a root value (since 0.172.0) - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp` vor. -- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::jsonpath_expression::select, select, Receive locations and values selected from a root value (since 0.172.0) -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_expression/select_paths.md b/analysis/jsoncons/ref/jsonpath/jsonpath_expression/select_paths.md deleted file mode 100644 index 51114a2f15..0000000000 --- a/analysis/jsoncons/ref/jsonpath/jsonpath_expression/select_paths.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_expression/select_paths.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::jsonpath_expression::select, select, select_paths - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath_error.hpp` vor. -- Das Symbol bzw. der Begriff `select` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::jsonpath_expression::select, select, select_paths -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_expression/update.md b/analysis/jsoncons/ref/jsonpath/jsonpath_expression/update.md deleted file mode 100644 index 2b7f23e3e9..0000000000 --- a/analysis/jsoncons/ref/jsonpath/jsonpath_expression/update.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_expression/update.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::jsonpath_expression::update, update - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `update` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `update` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `update` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. -- Das Symbol bzw. der Begriff `update` kommt in `others/jsoncons/include/jsoncons/json_parser.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::jsonpath_expression::update, update -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/jsonpath_grammer.md b/analysis/jsoncons/ref/jsonpath/jsonpath_grammer.md deleted file mode 100644 index b68acca852..0000000000 --- a/analysis/jsoncons/ref/jsonpath/jsonpath_grammer.md +++ /dev/null @@ -1,39 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/jsonpath_grammer.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: Grammar, jsonpath_grammer - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: niedrig -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist - -## Prüfung der inhaltlichen Korrektheit -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. -- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_parser.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: Grammar, jsonpath_grammer -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/make_expression.md b/analysis/jsoncons/ref/jsonpath/make_expression.md deleted file mode 100644 index 063a209817..0000000000 --- a/analysis/jsoncons/ref/jsonpath/make_expression.md +++ /dev/null @@ -1,61 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/make_expression.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_select_paths_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::make_expression, make_expression - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `make_expression` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `make_expression` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. -- Das Symbol bzw. der Begriff `make_expression` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die Verarbeitung wiederkehrender Ausdrücke lässt sich robuster und klarer über `make_expression` plus Wiederverwendung derselben Expression strukturieren als über wiederholte ad-hoc-Strings. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_select_paths_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_stateful_allocator_tests.cpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::make_expression, make_expression -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/path_node_kind.md b/analysis/jsoncons/ref/jsonpath/path_node_kind.md deleted file mode 100644 index 1e28a7269b..0000000000 --- a/analysis/jsoncons/ref/jsonpath/path_node_kind.md +++ /dev/null @@ -1,43 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/path_node_kind.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/path_node.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::path_node_kind, path_node_kind - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: mittel -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `path_node_kind` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. -- Das Symbol bzw. der Begriff `path_node_kind` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/path_node.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/path_node.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::path_node_kind, path_node_kind -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/remove.md b/analysis/jsoncons/ref/jsonpath/remove.md deleted file mode 100644 index 74dc9b7e6b..0000000000 --- a/analysis/jsoncons/ref/jsonpath/remove.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/remove.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::remove, remove - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vor. -- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. -- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::remove, remove -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/replace.md b/analysis/jsoncons/ref/jsonpath/replace.md deleted file mode 100644 index e82e10edb1..0000000000 --- a/analysis/jsoncons/ref/jsonpath/replace.md +++ /dev/null @@ -1,53 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/replace.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::replace, replace - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vor. -- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. -- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Pfade in [others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp) und [others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp](others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp) kompilieren JSONPath-Ausdrücke pro Aufruf. Warum potenziell teuer: Wiederholte Expression-Kompilierung und Ressourcenaufbau verursachen vermeidbaren CPU- und Allokationsaufwand bei identischen Pfaden. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung einer vorkompilierten `jsonpath_expression` via `make_expression`; bei Ergebnis-Streaming die Callback-Overloads statt materialisierter Ergebnis-Arrays nutzen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::replace, replace -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpath/result_options.md b/analysis/jsoncons/ref/jsonpath/result_options.md deleted file mode 100644 index deee26ad2a..0000000000 --- a/analysis/jsoncons/ref/jsonpath/result_options.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpath/result_options.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_json_query_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_test_suite.cpp -- others/jsoncons/test/jsonpath/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpath::result_options, result_options - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `result_options` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. -- Das Symbol bzw. der Begriff `result_options` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp` vor. -- Das Symbol bzw. der Begriff `result_options` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp` vor. -- Das Symbol bzw. der Begriff `result_options` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpath/src/jsonpath_json_query_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_expression.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath_selector.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp -- others/jsoncons/test/jsonpath/src/jsonpath_custom_function_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_expression_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_json_query_tests.cpp -- others/jsoncons/test/jsonpath/src/jsonpath_test_suite.cpp -- others/jsoncons/test/jsonpath/src -- Symbole: jsoncons::jsonpath::result_options, result_options -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpath/src diff --git a/analysis/jsoncons/ref/jsonpointer/add.md b/analysis/jsoncons/ref/jsonpointer/add.md deleted file mode 100644 index 19f5c1a6a8..0000000000 --- a/analysis/jsoncons/ref/jsonpointer/add.md +++ /dev/null @@ -1,50 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpointer/add.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/jsonpointer/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::add, add - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `add` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `add` kommt in `others/jsoncons/include/jsoncons/item_event_visitor.hpp` vor. -- Das Symbol bzw. der Begriff `add` kommt in `others/jsoncons/include/jsoncons/json_filter.hpp` vor. -- Das Symbol bzw. der Begriff `add` kommt in `others/jsoncons/include/jsoncons/sink.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. -- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/jsonpointer/src -- Symbole: jsoncons::jsonpointer::add, add -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/add_if_absent.md b/analysis/jsoncons/ref/jsonpointer/add_if_absent.md deleted file mode 100644 index 74aef191f3..0000000000 --- a/analysis/jsoncons/ref/jsonpointer/add_if_absent.md +++ /dev/null @@ -1,54 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpointer/add_if_absent.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/src/jsonpointer_examples.cpp -- others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp -- others/jsoncons/test/jsonpointer/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::add_if_absent, add_if_absent - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `add_if_absent` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Das Symbol bzw. der Begriff `add_if_absent` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Das Symbol bzw. der Begriff `add_if_absent` kommt in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. -- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/examples/src/jsonpointer_examples.cpp -- others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp -- others/jsoncons/test/jsonpointer/src -- Symbole: jsoncons::jsonpointer::add_if_absent, add_if_absent -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/basic_json_pointer.md b/analysis/jsoncons/ref/jsonpointer/basic_json_pointer.md deleted file mode 100644 index 19bd7b240f..0000000000 --- a/analysis/jsoncons/ref/jsonpointer/basic_json_pointer.md +++ /dev/null @@ -1,50 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpointer/basic_json_pointer.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/jsonpointer/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::basic_json_pointer, basic_json_pointer, operator=, Modifiers - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `operator=` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/common/mock_stateful_allocator.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. -- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/jsonpointer/src -- Symbole: jsoncons::jsonpointer::basic_json_pointer, basic_json_pointer, operator=, Modifiers -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/contains.md b/analysis/jsoncons/ref/jsonpointer/contains.md deleted file mode 100644 index fea11866ff..0000000000 --- a/analysis/jsoncons/ref/jsonpointer/contains.md +++ /dev/null @@ -1,50 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpointer/contains.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/jsonpointer/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::contains, contains - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_decimal128.hpp` vor. -- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `contains` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/token_evaluator.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. -- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/jsonpointer/src -- Symbole: jsoncons::jsonpointer::contains, contains -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/flatten.md b/analysis/jsoncons/ref/jsonpointer/flatten.md deleted file mode 100644 index dc5cd069d4..0000000000 --- a/analysis/jsoncons/ref/jsonpointer/flatten.md +++ /dev/null @@ -1,54 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpointer/flatten.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp -- others/jsoncons/test/jsonpointer/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::flatten, flatten - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons/json_array.hpp` vor. -- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons/json_object.hpp` vor. -- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons_ext/jmespath/jmespath.hpp` vor. -- Das Symbol bzw. der Begriff `flatten` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. -- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/flatten.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp -- others/jsoncons/test/jsonpointer/src -- Symbole: jsoncons::jsonpointer::flatten, flatten -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/get.md b/analysis/jsoncons/ref/jsonpointer/get.md deleted file mode 100644 index 673a162885..0000000000 --- a/analysis/jsoncons/ref/jsonpointer/get.md +++ /dev/null @@ -1,50 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpointer/get.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/jsonpointer/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::get, get - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. -- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. -- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. -- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/jsonpointer/src -- Symbole: jsoncons::jsonpointer::get, get -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/jsonpointer.md b/analysis/jsoncons/ref/jsonpointer/jsonpointer.md deleted file mode 100644 index 07a22bd642..0000000000 --- a/analysis/jsoncons/ref/jsonpointer/jsonpointer.md +++ /dev/null @@ -1,50 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpointer/jsonpointer.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/test/jsonpointer/src -- Relevante Klassen/Funktionen/Symbole: Classes, Functions, Using jsonpointer::json_pointer with jsonpointer::get - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. -- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/allocator_holder.hpp` vor. -- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/allocator_set.hpp` vor. -- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `get` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. -- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/test/jsonpointer/src -- Symbole: Classes, Functions, Using jsonpointer::json_pointer with jsonpointer::get -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/jsonpointer_errc.md b/analysis/jsoncons/ref/jsonpointer/jsonpointer_errc.md deleted file mode 100644 index 7226c2d7d0..0000000000 --- a/analysis/jsoncons/ref/jsonpointer/jsonpointer_errc.md +++ /dev/null @@ -1,45 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpointer/jsonpointer_errc.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/test/jsonpointer/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::jsonpointer_errc, jsonpointer_errc - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: mittel -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp` vorhanden. -- Das Symbol bzw. der Begriff `jsonpointer_errc` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. -- Das Symbol bzw. der Begriff `jsoncons::jsonpointer::jsonpointer_errc` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/test/jsonpointer/src -- Symbole: jsoncons::jsonpointer::jsonpointer_errc, jsonpointer_errc -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/jsonpointer_error.md b/analysis/jsoncons/ref/jsonpointer/jsonpointer_error.md deleted file mode 100644 index 99edde7a64..0000000000 --- a/analysis/jsoncons/ref/jsonpointer/jsonpointer_error.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpointer/jsonpointer_error.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/test/jsonpointer/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::jsonpointer_error, jsonpointer_error, Inherited from std::system_error, system_error - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conv_error.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/conversion_result.hpp` vor. -- Das Symbol bzw. der Begriff `system_error` kommt in `others/jsoncons/include/jsoncons/diagnostics_visitor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/test/jsonpointer/src -- Symbole: jsoncons::jsonpointer::jsonpointer_error, jsonpointer_error, Inherited from std::system_error, system_error -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/remove.md b/analysis/jsoncons/ref/jsonpointer/remove.md deleted file mode 100644 index 388c8c4a44..0000000000 --- a/analysis/jsoncons/ref/jsonpointer/remove.md +++ /dev/null @@ -1,52 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpointer/remove.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp -- others/jsoncons/test/jsonpointer/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::remove, remove - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vor. -- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. -- Das Symbol bzw. der Begriff `remove` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. -- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer_error.hpp -- others/jsoncons/test/jsonpointer/src -- Symbole: jsoncons::jsonpointer::remove, remove -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/replace.md b/analysis/jsoncons/ref/jsonpointer/replace.md deleted file mode 100644 index 58890de528..0000000000 --- a/analysis/jsoncons/ref/jsonpointer/replace.md +++ /dev/null @@ -1,50 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpointer/replace.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/jsonpointer/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonpointer::replace, replace - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonpointer/jsonpointer.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch_error.hpp` vor. -- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_location.hpp` vor. -- Das Symbol bzw. der Begriff `replace` kommt in `others/jsoncons/include/jsoncons_ext/jsonpath/json_query.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: In [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) existieren sowohl string-basierte Overloads als auch Overloads mit `basic_json_pointer`. Warum potenziell teuer: Die string-basierten Varianten müssen Pfade erneut parsen, wenn derselbe Pointer mehrfach verwendet wird. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorkonstruierten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. -- Beobachtung: `escape()` und `escape_string()` in `jsonpointer.hpp` bauen Ergebnisstrings zeichenweise auf, ohne vorab zu reservieren. Warum potenziell teuer: Bei längeren Tokens sind zusätzliche Reallokationen möglich. Mögliche Verbesserung: prüfenswerte `reserve()`-Nutzung auf Basis der Eingabelänge. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Vorparste `basic_json_pointer`-Objekte können den Datenfluss vereinfachen, weil Parsen und eigentliche Mutation/Zugriff sauber getrennt werden. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/jsonpointer/src -- Symbole: jsoncons::jsonpointer::replace, replace -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonpointer/unflatten_options.md b/analysis/jsoncons/ref/jsonpointer/unflatten_options.md deleted file mode 100644 index 4853294a29..0000000000 --- a/analysis/jsoncons/ref/jsonpointer/unflatten_options.md +++ /dev/null @@ -1,53 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonpointer/unflatten_options.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp -- Relevante Klassen/Funktionen/Symbole: unflatten_options, basic_json_pointer - -## Kurzfazit -- Status: widersprüchlich -- Vertrauensniveau: hoch -- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. - -## Was durch Code belegt ist -- Die Doku verwendet `#include `, eine solche Datei existiert im Repository nicht. -- Das Enum `unflatten_options` ist in [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) definiert. -- Der Code definiert `enum class unflatten_options {none,assume_object = 1};` in `jsonpointer.hpp`. -- Das Symbol bzw. der Begriff `unflatten_options` kommt in `others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp` vor. -- Das Symbol bzw. der Begriff `unflatten_options` kommt in `others/jsoncons/test/jsonpointer/src/jsonpointer_flatten_tests.cpp` vor. -- Das Symbol bzw. der Begriff `unflatten_options` kommt in `others/jsoncons/examples/src/jsonpointer_examples.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_flatten_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die Option gehört fachlich zum Unflatten-Pfad in `jsonpointer.hpp`; die Zuordnung der Doku zur Implementierung ist eindeutig. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. -- Widerspruch: Der dokumentierte Include-Pfad ist falsch; korrekt ist `jsoncons_ext/jsonpointer/jsonpointer.hpp`. -- Widerspruch: Die Doku nennt den Enumerator `object=1`, der Code verwendet `assume_object = 1`. -- Widerspruch: Die Wertetabelle nennt `assume_object`; das passt zur Implementierung, aber nicht zum gezeigten Codeblock. -- Widerspruch: Der dokumentierte Include-Pfad `jsoncons/jsonpointer/jsonpointer.hpp` ist im aktuellen Repository nicht vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren Implementierungsprobleme am Enum selbst; die Inkonsistenz liegt in der Dokumentation. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: String-basierte JSON-Pointer-Operationen in [others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp](others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp) parsen Pfade wiederholt, während Überladungen mit `basic_json_pointer` ebenfalls existieren. Warum potenziell teuer: Wiederholtes Parsen desselben Pfads erzeugt vermeidbare Tokenisierung. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung eines vorgeparsten `basic_json_pointer` in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die Seite sollte den Zusammenhang zu `jsoncons::jsonpointer::unflatten(const Json&, unflatten_options)` explizit mit dem korrekten Enum-Namen darstellen. - -## Unklarheiten / nicht belegbare Punkte -- Die jsonpointer-Tests wurden nicht ausgeführt; die Aussage stützt sich auf Header-Inspektion. -- Die vorhandenen Tests/Benchmarks wurden für diese Analyse nicht ausgeführt; die Einschätzung ist statisch. - -## Vorschläge zur Dokumentationsanpassung -- Include auf `#include ` korrigieren. -- Im Codeblock `assume_object = 1` statt `object=1` dokumentieren. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp -- Symbole: unflatten_options, basic_json_pointer -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonpointer/src diff --git a/analysis/jsoncons/ref/jsonschema/custom-error-messages.md b/analysis/jsoncons/ref/jsonschema/custom-error-messages.md deleted file mode 100644 index 33e40b9674..0000000000 --- a/analysis/jsoncons/ref/jsonschema/custom-error-messages.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/custom-error-messages.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/examples/src/jsonschema_examples.cpp -- others/jsoncons/test/jsonschema/src -- Relevante Klassen/Funktionen/Symbole: Custom Error Messages (since 1.2.0), custom-error-messages - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/toon/src/encode_toon_tests.cpp` vor. -- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/jsonpointer/src/jsonpointer_tests.cpp` vor. -- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Das Symbol bzw. der Begriff `Example` kommt in `others/jsoncons/test/corelib/src/reflect/reflect_traits_gen_functional_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/examples/src/jsonschema_examples.cpp -- others/jsoncons/test/jsonschema/src -- Symbole: Custom Error Messages (since 1.2.0), custom-error-messages -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/evaluation_options.md b/analysis/jsoncons/ref/jsonschema/evaluation_options.md deleted file mode 100644 index d138715d6f..0000000000 --- a/analysis/jsoncons/ref/jsonschema/evaluation_options.md +++ /dev/null @@ -1,49 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/evaluation_options.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp -- others/jsoncons/test/jsonschema/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::evaluation_options, evaluation_options - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/abort_early_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/custom_message_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Validierungspfade in [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) bauen auch dann ein Patch-Objekt auf, wenn der Aufrufer nur Validität oder Fehlermeldungen benötigt. Warum potenziell teuer: Das erzeugt zusätzlichen Objektaufbau und potenziell Patch-Inhalte, obwohl kein Rückgabepfad für den Patch genutzt wird. Mögliche Verbesserung: prüfenswerte Trennung in einen no-patch-Validierungspfad oder lazy Patch-Materialisierung. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp -- others/jsoncons/test/jsonschema/src -- Symbole: jsoncons::jsonschema::evaluation_options, evaluation_options -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/json_schema.md b/analysis/jsoncons/ref/jsonschema/json_schema.md deleted file mode 100644 index 72784a7a4f..0000000000 --- a/analysis/jsoncons/ref/jsonschema/json_schema.md +++ /dev/null @@ -1,61 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/json_schema.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator_factory.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/draft201909/schema_validator_factory_201909.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp -- others/jsoncons/test/jsonschema/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::json_schema, json_schema - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. -- Das Symbol bzw. der Begriff `json_schema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp` vor. -- Das Symbol bzw. der Begriff `json_schema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp` vor. -- Das Symbol bzw. der Begriff `json_schema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vor. -- Das Symbol bzw. der Begriff `json_schema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/abort_early_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/custom_message_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Validierungspfade in [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) bauen auch dann ein Patch-Objekt auf, wenn der Aufrufer nur Validität oder Fehlermeldungen benötigt. Warum potenziell teuer: Das erzeugt zusätzlichen Objektaufbau und potenziell Patch-Inhalte, obwohl kein Rückgabepfad für den Patch genutzt wird. Mögliche Verbesserung: prüfenswerte Trennung in einen no-patch-Validierungspfad oder lazy Patch-Materialisierung. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die aktuelle Struktur trennt Kompilierung (`make_json_schema`) und Auswertung (`json_schema`); Dokumentation und Nutzung sollten diese Trennung explizit beibehalten, um unnötige Rekompilierungen zu vermeiden. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator_factory.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/draft201909/schema_validator_factory_201909.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp -- others/jsoncons/test/jsonschema/src -- Symbole: jsoncons::jsonschema::json_schema, json_schema -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/json_schema/is_valid.md b/analysis/jsoncons/ref/jsonschema/json_schema/is_valid.md deleted file mode 100644 index c7179ab43c..0000000000 --- a/analysis/jsoncons/ref/jsonschema/json_schema/is_valid.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/json_schema/is_valid.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/test/jsonschema/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::json_schema::is_valid, is_valid - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. -- Das Symbol bzw. der Begriff `is_valid` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `is_valid` kommt in `others/jsoncons/include/jsoncons/decode_json.hpp` vor. -- Das Symbol bzw. der Begriff `is_valid` kommt in `others/jsoncons/include/jsoncons/json_decoder.hpp` vor. -- Das Symbol bzw. der Begriff `is_valid` kommt in `others/jsoncons/include/jsoncons_ext/bson/decode_bson.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Validierungspfade in [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) bauen auch dann ein Patch-Objekt auf, wenn der Aufrufer nur Validität oder Fehlermeldungen benötigt. Warum potenziell teuer: Das erzeugt zusätzlichen Objektaufbau und potenziell Patch-Inhalte, obwohl kein Rückgabepfad für den Patch genutzt wird. Mögliche Verbesserung: prüfenswerte Trennung in einen no-patch-Validierungspfad oder lazy Patch-Materialisierung. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/test/jsonschema/src -- Symbole: jsoncons::jsonschema::json_schema::is_valid, is_valid -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/json_schema/validate.md b/analysis/jsoncons/ref/jsonschema/json_schema/validate.md deleted file mode 100644 index 7c89f936f2..0000000000 --- a/analysis/jsoncons/ref/jsonschema/json_schema/validate.md +++ /dev/null @@ -1,64 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/json_schema/validate.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/test/jsonschema/src/jsonschema_draft202012_tests.cpp -- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp -- Relevante Klassen/Funktionen/Symbole: json_schema::validate, validation_message, walk_result - -## Kurzfazit -- Status: widersprüchlich -- Vertrauensniveau: hoch -- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. - -## Was durch Code belegt ist -- In [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) ist die Signatur `Json validate(const Json& instance) const` direkt implementiert. -- Im selben Header existieren die Overloads `void validate(const Json& instance, Json& patch) const`, reporter-basierte Overloads und `void validate(const Json& instance, json_visitor& visitor) const`. -- Der Doku-Beispielcode enthält in [others/jsoncons/doc/ref/jsonschema/json_schema/validate.md](others/jsoncons/doc/ref/jsonschema/json_schema/validate.md) ein `int main()` ohne folgende `{` und verwendet im Reporter-Lambda den Bezeichner `message`, obwohl der Parameter `msg` heißt. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. -- Das Symbol bzw. der Begriff `validate` kommt in `others/jsoncons/include/jsoncons/json_parser.hpp` vor. -- Das Symbol bzw. der Begriff `validate` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_encoder.hpp` vor. -- Das Symbol bzw. der Begriff `validate` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_parser.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die Validierungsfunktionalität ist im Repository vorhanden und durch umfangreiche Tests unter [others/jsoncons/test/jsonschema/src](others/jsoncons/test/jsonschema/src) indirekt abgestützt. -- Bestätigt: Die reporter-basierte API arbeitet im Code mit `validation_message` und `walk_result`; das ist in `json_schema.hpp` direkt nachvollziehbar. -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. -- Widerspruch: Die Doku nennt für Overload (1) `void validate(const Json& instance) const`, der Header implementiert aber `Json validate(const Json& instance) const` und gibt den Patch zurück. -- Widerspruch: Die Doku behauptet unter „Return value“ pauschal `None`; das widerspricht dem tatsächlichen Rückgabewert von Overload (1). -- Widerspruch: Die Doku-Signatur `json_visitor& visitor` entspricht nicht dem Header, der `json_visitor& visitor` verwendet. -- Widerspruch: Das Beispiel ist als C++-Code in der gezeigten Form nicht kompilierbar. - -## Mögliche Probleme in der Implementierung -- In `json_schema.hpp` wird für `validate(const Json& instance)`, `validate(const Json& instance, const MsgReporter&)` und `is_valid(const Json& instance)` jeweils ein Patch-Array aufgebaut (`Json patch(json_array_arg)`), obwohl der Aufrufer den Patch nicht in jedem Fall benötigt. Das ist ein konkreter, aber nicht gemessener möglicher Zusatzaufwand. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `json_schema::validate(const Json& instance)`, `validate(..., reporter)` und `is_valid()` legen in [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) jeweils ein `Json patch(json_array_arg)` an. Warum potenziell teuer: Das erzeugt zusätzlichen Objekt- und ggf. Patch-Aufbau selbst dann, wenn nur ein Bool-Ergebnis oder ein Fehler-Callback benötigt wird. Mögliche Verbesserung: prüfenswerte Aufspaltung in einen Pfad ohne Patch-Materialisierung oder lazy Patch-Erzeugung. Sicherheitsgrad der Aussage: mittel. -- Beobachtung: Die eigentliche Validierung delegiert an `root_->validate(...)` und traversiert dafür das gesamte Schema-/Instanzmodell. Warum potenziell teuer: Bei wiederholter Validierung großer Instanzen ist die Laufzeit naturgemäß vom Traversal dominiert. Mögliche Verbesserung: Nutzung der bereits vorhandenen kompilierten `json_schema`-Instanz wiederverwenden und keine Rekompilierung der Schemas vornehmen. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die Beispiele und die Overload-Tabelle sollten konsistent zwischen Throwing-, Reporter-, Patch- und Visitor-Pfaden unterscheiden, weil der aktuelle Header diese Pfade klar trennt. -- Für reine Gültigkeitsprüfungen ist `is_valid()` der klarere Verarbeitungspfad als `validate()` mit anschließend ignoriertem Rückgabewert. - -## Unklarheiten / nicht belegbare Punkte -- Die vorhandenen jsonschema-Tests wurden für diese Analyse nicht ausgeführt; die Einschätzung stützt sich auf statische Code- und Testinspektion. -- Es ist nicht sicher belegbar, ob der zusätzliche Patch-Aufbau in realen Workloads messbar ins Gewicht fällt, weil im Repository dazu keine isolierten Benchmarks liegen. -- Die vorhandenen Tests/Benchmarks wurden für diese Analyse nicht ausgeführt; die Einschätzung ist statisch. - -## Vorschläge zur Dokumentationsanpassung -- Overload (1) auf `Json validate(const Json& instance) const;` korrigieren. -- Die Visitor-Signatur auf `void validate(const Json& instance, json_visitor& visitor) const;` anpassen. -- Im Abschnitt „Return value“ den Patch-Rückgabewert von Overload (1) dokumentieren. -- Im Beispiel nach `int main()` die öffnende Klammer ergänzen und im Reporter-Lambda `msg` statt `message` verwenden. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/test/jsonschema/src/jsonschema_draft202012_tests.cpp -- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp -- Symbole: json_schema::validate, validation_message, walk_result -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/json_schema/walk.md b/analysis/jsoncons/ref/jsonschema/json_schema/walk.md deleted file mode 100644 index d3072d016b..0000000000 --- a/analysis/jsoncons/ref/jsonschema/json_schema/walk.md +++ /dev/null @@ -1,61 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/json_schema/walk.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp -- others/jsoncons/test/jsonschema/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::json_schema::walk, walk - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. -- Das Symbol bzw. der Begriff `walk` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp` vor. -- Das Symbol bzw. der Begriff `walk` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp` vor. -- Das Symbol bzw. der Begriff `walk` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp` vor. -- Das Symbol bzw. der Begriff `walk` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp -- others/jsoncons/test/jsonschema/src -- Symbole: jsoncons::jsonschema::json_schema::walk, walk -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/json_validator.md b/analysis/jsoncons/ref/jsonschema/json_validator.md deleted file mode 100644 index 9b7f41a310..0000000000 --- a/analysis/jsoncons/ref/jsonschema/json_validator.md +++ /dev/null @@ -1,53 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/json_validator.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- Relevante Klassen/Funktionen/Symbole: json_validator, json_schema, validation_message - -## Kurzfazit -- Status: wahrscheinlich veraltet -- Vertrauensniveau: hoch -- Begründung: Für den dokumentierten Typ bzw. die dokumentierte API gibt es im aktuellen Repository keinen belastbaren aktiven Implementierungsnachweis oder nur noch Reste wie Vorwärtsdeklarationen. Parallel existiert eine andere, aktuelle API im selben Bereich. Die Doku wirkt deshalb wahrscheinlich veraltet. - -## Was durch Code belegt ist -- Im aktuellen Header [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) ist `json_validator` nur noch vorwärtsdeklariert. -- Eine Klassendefinition für `json_validator` ist im aktuellen Repository nicht nachweisbar. -- Die aktuelle API nutzt `json_schema`, `validation_message` und `make_json_schema`. -- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die Seite ist als „deprecated“ gekennzeichnet; das passt zur fehlenden aktuellen Implementierung nur teilweise. -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. -- Widerspruch: Die dokumentierte Klasse ist im aktuellen Repository nicht in der beschriebenen Form implementiert. -- Widerspruch: Die Reporter-Signatur verweist auf `validation_output`, ein im aktuellen Code nicht vorhandenes Symbol. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Die Seite als historische/entfernte API kennzeichnen oder aus der aktiven Referenz entfernen. -- Einen Migrationshinweis auf `json_schema` und `validation_message` ergänzen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- Symbole: json_validator, json_schema, validation_message -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/jsonschema.md b/analysis/jsoncons/ref/jsonschema/jsonschema.md deleted file mode 100644 index 32e8b0147d..0000000000 --- a/analysis/jsoncons/ref/jsonschema/jsonschema.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/jsonschema.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp -- others/jsoncons/test/jsonschema/src/jsonschema_draft202012_tests.cpp -- Relevante Klassen/Funktionen/Symbole: Classes, Functions, Compliance, Keywords, Format - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: hoch -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Die jsonschema-Implementierung ist breit im Repository vorhanden, u. a. in [others/jsoncons/include/jsoncons_ext/jsonschema](others/jsoncons/include/jsoncons_ext/jsonschema) und den Tests unter [others/jsoncons/test/jsonschema/src](others/jsoncons/test/jsonschema/src). -- Die Doku verweist weiterhin auf `json_validator.md` als deprecated API. -- Im Beispielblock ab Zeile 208 der Doku folgt auf `int main()` nicht unmittelbar eine `{`, sodass der gezeigte Beispielcode nicht kompiliert. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. -- Das Symbol bzw. der Begriff `jsonschema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp` vor. -- Das Symbol bzw. der Begriff `jsonschema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp` vor. -- Das Symbol bzw. der Begriff `jsonschema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die Aussagen zur Unterstützung mehrerer Draft-Versionen sind durch die vorhandenen Factory-/Draft-Header und die Draft-spezifischen Tests indirekt abgestützt. -- Bestätigt: Die Referenz auf `make_json_schema`, `json_schema`, `evaluation_options`, `validation_message` und `schema_version` passt grundsätzlich zum aktuellen Code. -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. -- Nicht sicher bestätigt: Die Compliance-Tabelle verweist auf externe JSON-Schema-Suite/Bowtie-Aussagen; ohne Testausführung im lokalen Turn ist das nur indirekt durch den vorhandenen Testbestand gestützt. -- Widerspruch: Mindestens ein gezeigtes C++-Beispiel ist in der Doku syntaktisch unvollständig. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Validierungspfade in [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) bauen auch dann ein Patch-Objekt auf, wenn der Aufrufer nur Validität oder Fehlermeldungen benötigt. Warum potenziell teuer: Das erzeugt zusätzlichen Objektaufbau und potenziell Patch-Inhalte, obwohl kein Rückgabepfad für den Patch genutzt wird. Mögliche Verbesserung: prüfenswerte Trennung in einen no-patch-Validierungspfad oder lazy Patch-Materialisierung. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die aktuelle Struktur trennt Kompilierung (`make_json_schema`) und Auswertung (`json_schema`); Dokumentation und Nutzung sollten diese Trennung explizit beibehalten, um unnötige Rekompilierungen zu vermeiden. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Das fehlerhafte `int main()`-Beispiel korrigieren. -- Die deprecated-Referenz auf `json_validator` mit einem klaren Hinweis auf fehlende aktuelle Implementierung/Migration versehen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp -- others/jsoncons/test/jsonschema/src/jsonschema_draft202012_tests.cpp -- Symbole: Classes, Functions, Compliance, Keywords, Format -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/make_json_schema.md b/analysis/jsoncons/ref/jsonschema/make_json_schema.md deleted file mode 100644 index 094e3d9869..0000000000 --- a/analysis/jsoncons/ref/jsonschema/make_json_schema.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/make_json_schema.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp -- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp -- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp -- others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp -- others/jsoncons/test/jsonschema/src/json_schema_walk_tests.cpp -- others/jsoncons/test/jsonschema/src/jsonschema_defaults_tests.cpp -- others/jsoncons/test/jsonschema/src/jsonschema_draft201909_tests.cpp -- others/jsoncons/test/jsonschema/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::make_json_schema, make_json_schema - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `make_json_schema` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Das Symbol bzw. der Begriff `make_json_schema` kommt in `others/jsoncons/test/jsonschema/src/abort_early_tests.cpp` vor. -- Das Symbol bzw. der Begriff `make_json_schema` kommt in `others/jsoncons/test/jsonschema/src/custom_message_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Validierungspfade in [others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp) bauen auch dann ein Patch-Objekt auf, wenn der Aufrufer nur Validität oder Fehlermeldungen benötigt. Warum potenziell teuer: Das erzeugt zusätzlichen Objektaufbau und potenziell Patch-Inhalte, obwohl kein Rückgabepfad für den Patch genutzt wird. Mögliche Verbesserung: prüfenswerte Trennung in einen no-patch-Validierungspfad oder lazy Patch-Materialisierung. Sicherheitsgrad der Aussage: mittel. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die aktuelle Struktur trennt Kompilierung (`make_json_schema`) und Auswertung (`json_schema`); Dokumentation und Nutzung sollten diese Trennung explizit beibehalten, um unnötige Rekompilierungen zu vermeiden. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp -- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp -- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp -- others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp -- others/jsoncons/test/jsonschema/src/json_schema_walk_tests.cpp -- others/jsoncons/test/jsonschema/src/jsonschema_defaults_tests.cpp -- others/jsoncons/test/jsonschema/src/jsonschema_draft201909_tests.cpp -- others/jsoncons/test/jsonschema/src -- Symbole: jsoncons::jsonschema::make_json_schema, make_json_schema -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/schema_error.md b/analysis/jsoncons/ref/jsonschema/schema_error.md deleted file mode 100644 index 1fba30491b..0000000000 --- a/analysis/jsoncons/ref/jsonschema/schema_error.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/schema_error.md - -## Zugehörige Implementierung -- others/jsoncons/test/jsonschema/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::schema_error, schema_error - -## Kurzfazit -- Status: widersprüchlich -- Vertrauensniveau: hoch -- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. - -## Was durch Code belegt ist -- Die Datei [others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp) enthält die Klasse `schema_error`. -- Der in der Doku genannte Pfad `jsoncons_ext/jsonschema/schema_error.hpp` existiert im Repository nicht. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/jsonschema_defaults_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die Exception-Klasse selbst ist im aktuellen Code vorhanden und wird in mehreren jsonschema-Headern verwendet. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. -- Widerspruch: Der dokumentierte Include-Pfad ist falsch; die Implementierung liegt in `jsonschema_error.hpp`. -- Widerspruch: Der dokumentierte Include-Pfad `jsoncons_ext/jsonschema/schema_error.hpp` ist im aktuellen Repository nicht vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Include auf `#include ` korrigieren. - -## Quellen im Repository -- others/jsoncons/test/jsonschema/src -- Symbole: jsoncons::jsonschema::schema_error, schema_error -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/schema_version.md b/analysis/jsoncons/ref/jsonschema/schema_version.md deleted file mode 100644 index 8680ac7354..0000000000 --- a/analysis/jsoncons/ref/jsonschema/schema_version.md +++ /dev/null @@ -1,62 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/schema_version.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonschema/draft201909/schema_validator_factory_201909.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/draft202012/schema_validator_factory_202012.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/draft4/schema_validator_factory_4.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/draft6/schema_validator_factory_6.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/draft7/schema_validator_factory_7.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp -- others/jsoncons/test/jsonschema/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::schema_version, schema_version - -## Kurzfazit -- Status: widersprüchlich -- Vertrauensniveau: hoch -- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. - -## Was durch Code belegt ist -- `schema_version` ist in [others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp) definiert. -- Die Aggregate-Datei [others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema.hpp) existiert und zieht die Factory-Kette ein. -- Der dokumentierte Include-Pfad `jsoncons/jsonschema/jsonschema.hpp` existiert im Repository nicht. -- Das Symbol bzw. der Begriff `schema_version` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp` vor. -- Das Symbol bzw. der Begriff `schema_version` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp` vor. -- Das Symbol bzw. der Begriff `schema_version` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/draft201909/schema_validator_factory_201909.hpp` vor. -- Das Symbol bzw. der Begriff `schema_version` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/draft202012/schema_validator_factory_202012.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die statischen Helfer `draft4`, `draft6`, `draft7`, `draft201909` und `draft202012` werden im Code und in Tests referenziert. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. -- Widerspruch: Der dokumentierte Include-Pfad ist falsch. -- Widerspruch: Der dokumentierte Include-Pfad `jsoncons/jsonschema/jsonschema.hpp` ist im aktuellen Repository nicht vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Entweder den direkten Definitions-Header `jsoncons_ext/jsonschema/evaluation_options.hpp` oder den öffentlichen Aggregate-Header `jsoncons_ext/jsonschema/jsonschema.hpp` dokumentieren. -- Den Pfad `jsoncons/jsonschema/jsonschema.hpp` entfernen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonschema/draft201909/schema_validator_factory_201909.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/draft202012/schema_validator_factory_202012.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/draft4/schema_validator_factory_4.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/draft6/schema_validator_factory_6.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/draft7/schema_validator_factory_7.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/evaluation_options.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema_factory.hpp -- others/jsoncons/test/jsonschema/src -- Symbole: jsoncons::jsonschema::schema_version, schema_version -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/validation_error.md b/analysis/jsoncons/ref/jsonschema/validation_error.md deleted file mode 100644 index 88d3734252..0000000000 --- a/analysis/jsoncons/ref/jsonschema/validation_error.md +++ /dev/null @@ -1,46 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/validation_error.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp -- others/jsoncons/test/jsonschema/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::validation_error, validation_error - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/jsonschema_defaults_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/jsonschema_examples.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp -- others/jsoncons/test/jsonschema/src -- Symbole: jsoncons::jsonschema::validation_error, validation_error -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/validation_message.md b/analysis/jsoncons/ref/jsonschema/validation_message.md deleted file mode 100644 index e70ff6b802..0000000000 --- a/analysis/jsoncons/ref/jsonschema/validation_message.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/validation_message.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp -- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp -- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp -- others/jsoncons/test/jsonschema/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::validation_message, validation_message - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp` vorhanden. -- Das Symbol bzw. der Begriff `validation_message` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp` vor. -- Das Symbol bzw. der Begriff `validation_message` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp` vor. -- Das Symbol bzw. der Begriff `validation_message` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp` vor. -- Das Symbol bzw. der Begriff `validation_message` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/abort_early_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/custom_message_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp -- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp -- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp -- others/jsoncons/test/jsonschema/src -- Symbole: jsoncons::jsonschema::validation_message, validation_message -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/validation_output.md b/analysis/jsoncons/ref/jsonschema/validation_output.md deleted file mode 100644 index dfda9bbff8..0000000000 --- a/analysis/jsoncons/ref/jsonschema/validation_output.md +++ /dev/null @@ -1,46 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/validation_output.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- Relevante Klassen/Funktionen/Symbole: validation_output, validation_message - -## Kurzfazit -- Status: wahrscheinlich veraltet -- Vertrauensniveau: hoch -- Begründung: Für den dokumentierten Typ bzw. die dokumentierte API gibt es im aktuellen Repository keinen belastbaren aktiven Implementierungsnachweis oder nur noch Reste wie Vorwärtsdeklarationen. Parallel existiert eine andere, aktuelle API im selben Bereich. Die Doku wirkt deshalb wahrscheinlich veraltet. - -## Was durch Code belegt ist -- Im aktuellen jsonschema-Quellbaum unter [others/jsoncons/include/jsoncons_ext/jsonschema](others/jsoncons/include/jsoncons_ext/jsonschema) kommt das Symbol `validation_output` nicht vor. -- Die aktuelle API verwendet `validation_message`, definiert in [others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp](others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp). -- Auch [others/jsoncons/doc/ref/jsonschema/json_validator.md](others/jsoncons/doc/ref/jsonschema/json_validator.md) verweist noch auf `validation_output`. -- Der in der Doku verwendete Header `jsoncons_ext/jsonschema/jsonschema_error.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonschema/jsonschema_error.hpp` vorhanden. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die aktuelle Fehlerberichterstattung des Repositories läuft über `validation_message` und `walk_result`. -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. -- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. -- Widerspruch: Der dokumentierte Typ `validation_output` ist im aktuellen Repository nicht nachweisbar. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. - -## Vorschläge zur Dokumentationsanpassung -- Die Seite entfernen oder als Archiv kennzeichnen. -- Falls ein Nachfolger dokumentiert werden soll, auf `validation_message` umstellen und die aktuellen Header verlinken. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonschema/validation_message.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- Symbole: validation_output, validation_message -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/jsonschema/walk_result.md b/analysis/jsoncons/ref/jsonschema/walk_result.md deleted file mode 100644 index 0c786bd53c..0000000000 --- a/analysis/jsoncons/ref/jsonschema/walk_result.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/jsonschema/walk_result.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp -- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp -- others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp -- others/jsoncons/test/jsonschema/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::jsonschema::walk_result, walk_result - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `walk_result` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp` vor. -- Das Symbol bzw. der Begriff `walk_result` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp` vor. -- Das Symbol bzw. der Begriff `walk_result` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp` vor. -- Das Symbol bzw. der Begriff `walk_result` kommt in `others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/abort_early_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/custom_message_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/jsonschema/common/format.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/keyword_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/schema_validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/common/validator.hpp -- others/jsoncons/include/jsoncons_ext/jsonschema/json_schema.hpp -- others/jsoncons/test/jsonschema/src/abort_early_tests.cpp -- others/jsoncons/test/jsonschema/src/custom_message_tests.cpp -- others/jsoncons/test/jsonschema/src/dynamic_ref_tests.cpp -- others/jsoncons/test/jsonschema/src -- Symbole: jsoncons::jsonschema::walk_result, walk_result -- Tests / Beispiele / Benchmarks: others/jsoncons/test/jsonschema/src diff --git a/analysis/jsoncons/ref/mergepatch/apply_merge_patch.md b/analysis/jsoncons/ref/mergepatch/apply_merge_patch.md deleted file mode 100644 index ecc34e539f..0000000000 --- a/analysis/jsoncons/ref/mergepatch/apply_merge_patch.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/mergepatch/apply_merge_patch.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp -- others/jsoncons/test/mergepatch/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::mergepatch::apply_merge_patch, apply_merge_patch - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/mergepatch/mergepatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `apply_merge_patch` kommt in `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Das Symbol bzw. der Begriff `apply_merge_patch` kommt in `others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp -- others/jsoncons/test/mergepatch/src -- Symbole: jsoncons::mergepatch::apply_merge_patch, apply_merge_patch -- Tests / Beispiele / Benchmarks: others/jsoncons/test/mergepatch/src diff --git a/analysis/jsoncons/ref/mergepatch/from_diff.md b/analysis/jsoncons/ref/mergepatch/from_diff.md deleted file mode 100644 index 5b0e86cbc2..0000000000 --- a/analysis/jsoncons/ref/mergepatch/from_diff.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/mergepatch/from_diff.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp -- others/jsoncons/test/mergepatch/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::mergepatch::from_diff, from_diff - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/mergepatch/mergepatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/include/jsoncons_ext/jsonpatch/jsonpatch.hpp` vor. -- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vor. -- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp` vor. -- Das Symbol bzw. der Begriff `from_diff` kommt in `others/jsoncons/test/jsonpatch/src/jsonpatch_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp -- others/jsoncons/test/mergepatch/src -- Symbole: jsoncons::mergepatch::from_diff, from_diff -- Tests / Beispiele / Benchmarks: others/jsoncons/test/mergepatch/src diff --git a/analysis/jsoncons/ref/mergepatch/mergepatch.md b/analysis/jsoncons/ref/mergepatch/mergepatch.md deleted file mode 100644 index 58f3f604f3..0000000000 --- a/analysis/jsoncons/ref/mergepatch/mergepatch.md +++ /dev/null @@ -1,51 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/mergepatch/mergepatch.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp -- others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp -- others/jsoncons/test/mergepatch/src -- Relevante Klassen/Funktionen/Symbole: mergepatch - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/mergepatch/mergepatch.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vorhanden. -- Das Symbol bzw. der Begriff `mergepatch` kommt in `others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp` vor. -- Das Symbol bzw. der Begriff `mergepatch` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `mergepatch` kommt in `others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp` vor. -- Das Symbol bzw. der Begriff `Examples` kommt in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/mergepatch/mergepatch.hpp -- others/jsoncons/test/mergepatch/src/mergepatch_test_suite.cpp -- others/jsoncons/test/mergepatch/src -- Symbole: mergepatch -- Tests / Beispiele / Benchmarks: others/jsoncons/test/mergepatch/src diff --git a/analysis/jsoncons/ref/msgpack/basic_msgpack_cursor.md b/analysis/jsoncons/ref/msgpack/basic_msgpack_cursor.md deleted file mode 100644 index 4ae245cf40..0000000000 --- a/analysis/jsoncons/ref/msgpack/basic_msgpack_cursor.md +++ /dev/null @@ -1,45 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/msgpack/basic_msgpack_cursor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor.hpp -- others/jsoncons/test/msgpack/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::msgpack::basic_msgpack_cursor, basic_msgpack_cursor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/msgpack/msgpack_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor.hpp -- others/jsoncons/test/msgpack/src -- Symbole: jsoncons::msgpack::basic_msgpack_cursor, basic_msgpack_cursor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/msgpack/src diff --git a/analysis/jsoncons/ref/msgpack/basic_msgpack_encoder.md b/analysis/jsoncons/ref/msgpack/basic_msgpack_encoder.md deleted file mode 100644 index b10079abe8..0000000000 --- a/analysis/jsoncons/ref/msgpack/basic_msgpack_encoder.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/msgpack/basic_msgpack_encoder.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_encoder.hpp -- others/jsoncons/test/msgpack/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::msgpack::basic_msgpack_encoder, basic_msgpack_encoder, Destructor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/msgpack/msgpack_encoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/msgpack/msgpack_encoder.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/jsonschema_examples.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_encoder.hpp -- others/jsoncons/test/msgpack/src -- Symbole: jsoncons::msgpack::basic_msgpack_encoder, basic_msgpack_encoder, Destructor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/msgpack/src diff --git a/analysis/jsoncons/ref/msgpack/decode_msgpack.md b/analysis/jsoncons/ref/msgpack/decode_msgpack.md deleted file mode 100644 index 4854ca66e1..0000000000 --- a/analysis/jsoncons/ref/msgpack/decode_msgpack.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/msgpack/decode_msgpack.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/decode_msgpack.hpp -- others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp -- others/jsoncons/test/msgpack/src/encode_msgpack_tests.cpp -- others/jsoncons/test/msgpack/src/msgpack_bitset_traits_tests.cpp -- others/jsoncons/test/msgpack/src/msgpack_encoder_tests.cpp -- others/jsoncons/test/msgpack/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::msgpack::decode_msgpack, decode_msgpack - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/msgpack/msgpack.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp` vorhanden. -- Das Symbol bzw. der Begriff `decode_msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/decode_msgpack.hpp` vor. -- Das Symbol bzw. der Begriff `decode_msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp` vor. -- Das Symbol bzw. der Begriff `decode_msgpack` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `Exceptions` kommt in `others/jsoncons/test/thirdparty/catch/catch.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/decode_msgpack.hpp -- others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp -- others/jsoncons/test/msgpack/src/encode_msgpack_tests.cpp -- others/jsoncons/test/msgpack/src/msgpack_bitset_traits_tests.cpp -- others/jsoncons/test/msgpack/src/msgpack_encoder_tests.cpp -- others/jsoncons/test/msgpack/src -- Symbole: jsoncons::msgpack::decode_msgpack, decode_msgpack -- Tests / Beispiele / Benchmarks: others/jsoncons/test/msgpack/src diff --git a/analysis/jsoncons/ref/msgpack/encode_msgpack.md b/analysis/jsoncons/ref/msgpack/encode_msgpack.md deleted file mode 100644 index dd9b034eb7..0000000000 --- a/analysis/jsoncons/ref/msgpack/encode_msgpack.md +++ /dev/null @@ -1,61 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/msgpack/encode_msgpack.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/encode_msgpack.hpp -- others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp -- others/jsoncons/test/msgpack/src/encode_msgpack_tests.cpp -- others/jsoncons/test/msgpack/src/msgpack_bitset_traits_tests.cpp -- others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp -- others/jsoncons/test/msgpack/src/msgpack_event_reader_tests.cpp -- others/jsoncons/test/msgpack/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::msgpack::encode_msgpack, encode_msgpack - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/msgpack/msgpack.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Das Symbol bzw. der Begriff `encode_msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/encode_msgpack.hpp` vor. -- Das Symbol bzw. der Begriff `encode_msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp` vor. -- Das Symbol bzw. der Begriff `encode_msgpack` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `encode_msgpack` kommt in `others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/encode_msgpack.hpp -- others/jsoncons/test/msgpack/src/decode_msgpack_tests.cpp -- others/jsoncons/test/msgpack/src/encode_msgpack_tests.cpp -- others/jsoncons/test/msgpack/src/msgpack_bitset_traits_tests.cpp -- others/jsoncons/test/msgpack/src/msgpack_cursor_tests.cpp -- others/jsoncons/test/msgpack/src/msgpack_event_reader_tests.cpp -- others/jsoncons/test/msgpack/src -- Symbole: jsoncons::msgpack::encode_msgpack, encode_msgpack -- Tests / Beispiele / Benchmarks: others/jsoncons/test/msgpack/src diff --git a/analysis/jsoncons/ref/msgpack/msgpack.md b/analysis/jsoncons/ref/msgpack/msgpack.md deleted file mode 100644 index 47811ac640..0000000000 --- a/analysis/jsoncons/ref/msgpack/msgpack.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/msgpack/msgpack.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/decode_msgpack.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/encode_msgpack.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_encoder.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_error.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_event_reader.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_options.hpp -- others/jsoncons/test/msgpack/src -- Relevante Klassen/Funktionen/Symbole: msgpack - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/msgpack/msgpack.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp` vorhanden. -- Das Symbol bzw. der Begriff `msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/decode_msgpack.hpp` vor. -- Das Symbol bzw. der Begriff `msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/encode_msgpack.hpp` vor. -- Das Symbol bzw. der Begriff `msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp` vor. -- Das Symbol bzw. der Begriff `msgpack` kommt in `others/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/decode_msgpack.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/encode_msgpack.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_cursor.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_encoder.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_error.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_event_reader.hpp -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_options.hpp -- others/jsoncons/test/msgpack/src -- Symbole: msgpack -- Tests / Beispiele / Benchmarks: others/jsoncons/test/msgpack/src diff --git a/analysis/jsoncons/ref/msgpack/msgpack_options.md b/analysis/jsoncons/ref/msgpack/msgpack_options.md deleted file mode 100644 index 2ddb0dc0ab..0000000000 --- a/analysis/jsoncons/ref/msgpack/msgpack_options.md +++ /dev/null @@ -1,46 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/msgpack/msgpack_options.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_options.hpp -- others/jsoncons/test/msgpack/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::msgpack::msgpack_options, msgpack_options, Modifiers - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/msgpack/msgpack_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/msgpack/msgpack_options.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Modifiers` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/msgpack/src/msgpack_encoder_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/fuzz_regression/src/fuzz_regression_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/msgpack/msgpack_options.hpp -- others/jsoncons/test/msgpack/src -- Symbole: jsoncons::msgpack::msgpack_options, msgpack_options, Modifiers -- Tests / Beispiele / Benchmarks: others/jsoncons/test/msgpack/src diff --git a/analysis/jsoncons/ref/toon/decode_toon.md b/analysis/jsoncons/ref/toon/decode_toon.md deleted file mode 100644 index aa080bee6e..0000000000 --- a/analysis/jsoncons/ref/toon/decode_toon.md +++ /dev/null @@ -1,56 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/toon/decode_toon.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp -- others/jsoncons/test/toon/src/decode_toon_tests.cpp -- Relevante Klassen/Funktionen/Symbole: decode_toon, try_decode_toon, toon_reader - -## Kurzfazit -- Status: widersprüchlich -- Vertrauensniveau: hoch -- Begründung: Die Seite weicht in mindestens einem direkt überprüfbaren Punkt vom aktuellen Repository ab. Betroffen sind je nach Fall Include-Pfade, Signaturen, Enum-Namen oder gezeigter Beispielcode. Die Implementierung selbst ist vorhanden, aber die Doku bildet sie nicht konsistent ab. - -## Was durch Code belegt ist -- Die Implementierung liegt in [others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp](others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp). -- Der Header enthält neben String- und Stream-Overloads auch mehrere `allocator_set`-Overloads für `try_decode_toon`. -- Im ersten Beispiel der Doku wird `toon::decode_toon(toon_str);` ohne Zuweisung aufgerufen, danach aber `result` verwendet. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/toon/decode_toon.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp` vorhanden. -- Das Symbol bzw. der Begriff `decode_toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp` vor. -- Das Symbol bzw. der Begriff `decode_toon` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `decode_toon` kommt in `others/jsoncons/test/toon/src/decode_toon_tests.cpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die gezeigten Grundüberladungen für String und Stream existieren im Code. -- Bestätigt: Die ToON-Tests unter [others/jsoncons/test/toon/src](others/jsoncons/test/toon/src) stützen die Feature-Familie indirekt. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. -- Widerspruch: Der dokumentierte Include-Pfad `jsoncons/decode_toon.hpp` ist falsch; korrekt ist `jsoncons_ext/toon/decode_toon.hpp`. -- Widerspruch: Die Overload-Liste ist unvollständig, weil die vorhandenen `allocator_set`-Varianten nicht dokumentiert sind. -- Widerspruch: Das erste Beispiel ist in der gezeigten Form nicht kompilierbar, weil `result` nie deklariert oder initialisiert wird. -- Widerspruch: Der dokumentierte Include-Pfad `jsoncons/decode_toon.hpp` ist im aktuellen Repository nicht vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die High-Level-Helfer in `decode_toon.hpp` erzeugen pro Aufruf Decoder/Reader neu; zusätzliche `allocator_set`-Overloads sind vorhanden. Warum potenziell teuer: Bei vielen kleinen Eingaben wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: prüfenswerte Nutzung der `allocator_set`-Overloads oder der Reader/Decoder-APIs in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die Seite sollte die vorhandenen `allocator_set`-Overloads nennen, damit der datenpfad für kontrollierte Allokation dokumentiert ist. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Include auf `#include ` korrigieren. -- Das erste Beispiel mit einer Ergebnisvariable ergänzen, z. B. `auto result = toon::decode_toon(toon_str);`. -- Die `allocator_set`-Overloads ergänzen oder explizit als separate Optimierungsvariante verlinken. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp -- others/jsoncons/test/toon/src/decode_toon_tests.cpp -- Symbole: decode_toon, try_decode_toon, toon_reader -- Tests / Beispiele / Benchmarks: others/jsoncons/test/toon/src diff --git a/analysis/jsoncons/ref/toon/encode_toon.md b/analysis/jsoncons/ref/toon/encode_toon.md deleted file mode 100644 index ca78e2db1d..0000000000 --- a/analysis/jsoncons/ref/toon/encode_toon.md +++ /dev/null @@ -1,55 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/toon/encode_toon.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon.hpp -- others/jsoncons/test/toon/src/encode_toon_tests.cpp -- others/jsoncons/test/toon/src/toon_test_suite.cpp -- others/jsoncons/test/toon/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::toon::encode_toon, encode_toon - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/toon/encode_toon.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/toon/toon.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/toon/toon.hpp` vorhanden. -- Das Symbol bzw. der Begriff `encode_toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp` vor. -- Das Symbol bzw. der Begriff `encode_toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon.hpp` vor. -- Das Symbol bzw. der Begriff `encode_toon` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `encode_toon` kommt in `others/jsoncons/test/toon/src/encode_toon_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon.hpp -- others/jsoncons/test/toon/src/encode_toon_tests.cpp -- others/jsoncons/test/toon/src/toon_test_suite.cpp -- others/jsoncons/test/toon/src -- Symbole: jsoncons::toon::encode_toon, encode_toon -- Tests / Beispiele / Benchmarks: others/jsoncons/test/toon/src diff --git a/analysis/jsoncons/ref/toon/key_folding_kind.md b/analysis/jsoncons/ref/toon/key_folding_kind.md deleted file mode 100644 index 9f01b0fad9..0000000000 --- a/analysis/jsoncons/ref/toon/key_folding_kind.md +++ /dev/null @@ -1,42 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/toon/key_folding_kind.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp -- others/jsoncons/test/toon/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::toon::key_folding_kind, key_folding_kind - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: niedrig -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/toon/toon_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp` vorhanden. -- Das Symbol bzw. der Begriff `key_folding_kind` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Es wurden keine direkt zugeordneten Tests/Beispiele/Benchmarks gefunden, die genau diese Doku-Seite absichern; die Zuordnung stützt sich daher primär auf Header und Symbolsuche. -- Ein Teil der Aussagen ist konzeptionell oder prose-lastig und deshalb nicht vollständig durch eine einzelne Implementierungsstelle belegbar. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp -- others/jsoncons/test/toon/src -- Symbole: jsoncons::toon::key_folding_kind, key_folding_kind -- Tests / Beispiele / Benchmarks: others/jsoncons/test/toon/src diff --git a/analysis/jsoncons/ref/toon/toon.md b/analysis/jsoncons/ref/toon/toon.md deleted file mode 100644 index 4f537c2741..0000000000 --- a/analysis/jsoncons/ref/toon/toon.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/toon/toon.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp -- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon_error.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp -- others/jsoncons/test/toon/src/decode_toon_tests.cpp -- others/jsoncons/test/toon/src -- Relevante Klassen/Funktionen/Symbole: Compliance, toon - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp` vor. -- Das Symbol bzw. der Begriff `toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp` vor. -- Das Symbol bzw. der Begriff `toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon.hpp` vor. -- Das Symbol bzw. der Begriff `toon` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_error.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/decode_toon_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/encode_toon_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/toon/decode_toon.hpp -- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon_error.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp -- others/jsoncons/include/jsoncons_ext/toon/toon_reader.hpp -- others/jsoncons/test/toon/src/decode_toon_tests.cpp -- others/jsoncons/test/toon/src -- Symbole: Compliance, toon -- Tests / Beispiele / Benchmarks: others/jsoncons/test/toon/src diff --git a/analysis/jsoncons/ref/toon/toon_delimiter_kind.md b/analysis/jsoncons/ref/toon/toon_delimiter_kind.md deleted file mode 100644 index 2ad67499de..0000000000 --- a/analysis/jsoncons/ref/toon/toon_delimiter_kind.md +++ /dev/null @@ -1,48 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/toon/toon_delimiter_kind.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp -- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp -- others/jsoncons/test/toon/src/toon_test_suite.cpp -- others/jsoncons/test/toon/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::toon::toon_delimiter_kind, toon_delimiter_kind - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: mittel -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/toon/toon_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp` vorhanden. -- Das Symbol bzw. der Begriff `toon_delimiter_kind` kommt in `others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp` vor. -- Das Symbol bzw. der Begriff `toon_delimiter_kind` kommt in `others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp` vor. -- Das Symbol bzw. der Begriff `toon_delimiter_kind` kommt in `others/jsoncons/test/toon/src/toon_test_suite.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_test_suite.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp -- others/jsoncons/include/jsoncons_ext/toon/encode_toon.hpp -- others/jsoncons/test/toon/src/toon_test_suite.cpp -- others/jsoncons/test/toon/src -- Symbole: jsoncons::toon::toon_delimiter_kind, toon_delimiter_kind -- Tests / Beispiele / Benchmarks: others/jsoncons/test/toon/src diff --git a/analysis/jsoncons/ref/toon/toon_options.md b/analysis/jsoncons/ref/toon/toon_options.md deleted file mode 100644 index 2dbcc09d98..0000000000 --- a/analysis/jsoncons/ref/toon/toon_options.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/toon/toon_options.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp -- others/jsoncons/test/toon/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::toon::toon_options, toon_options, Constructor, Setters - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/toon/toon_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructor` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_reader_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/toon/src/toon_test_suite.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/thirdparty/catch/catch.hpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/toon/toon_options.hpp -- others/jsoncons/test/toon/src -- Symbole: jsoncons::toon::toon_options, toon_options, Constructor, Setters -- Tests / Beispiele / Benchmarks: others/jsoncons/test/toon/src diff --git a/analysis/jsoncons/ref/ubjson/basic_ubjson_cursor.md b/analysis/jsoncons/ref/ubjson/basic_ubjson_cursor.md deleted file mode 100644 index aa83b76527..0000000000 --- a/analysis/jsoncons/ref/ubjson/basic_ubjson_cursor.md +++ /dev/null @@ -1,45 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/ubjson/basic_ubjson_cursor.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_cursor.hpp -- others/jsoncons/test/ubjson/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::ubjson::basic_ubjson_cursor, basic_ubjson_cursor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/ubjson/ubjson_cursor.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/ubjson/ubjson_cursor.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_cursor.hpp -- others/jsoncons/test/ubjson/src -- Symbole: jsoncons::ubjson::basic_ubjson_cursor, basic_ubjson_cursor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/ubjson/src diff --git a/analysis/jsoncons/ref/ubjson/basic_ubjson_encoder.md b/analysis/jsoncons/ref/ubjson/basic_ubjson_encoder.md deleted file mode 100644 index df1805720a..0000000000 --- a/analysis/jsoncons/ref/ubjson/basic_ubjson_encoder.md +++ /dev/null @@ -1,47 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/ubjson/basic_ubjson_encoder.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_encoder.hpp -- others/jsoncons/test/ubjson/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::ubjson::basic_ubjson_encoder, basic_ubjson_encoder, Destructor - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/ubjson/ubjson_encoder.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/ubjson/ubjson_encoder.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/cbor/cbor_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/jmespath/src/jmespath_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/csv_examples.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/examples/src/jsonschema_examples.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_encoder.hpp -- others/jsoncons/test/ubjson/src -- Symbole: jsoncons::ubjson::basic_ubjson_encoder, basic_ubjson_encoder, Destructor -- Tests / Beispiele / Benchmarks: others/jsoncons/test/ubjson/src diff --git a/analysis/jsoncons/ref/ubjson/decode_ubjson.md b/analysis/jsoncons/ref/ubjson/decode_ubjson.md deleted file mode 100644 index 198ca75a88..0000000000 --- a/analysis/jsoncons/ref/ubjson/decode_ubjson.md +++ /dev/null @@ -1,55 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/ubjson/decode_ubjson.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/decode_ubjson.hpp -- others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp -- others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp -- others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp -- others/jsoncons/test/ubjson/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::ubjson::decode_ubjson, decode_ubjson - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/ubjson/ubjson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp` vorhanden. -- Das Symbol bzw. der Begriff `decode_ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/decode_ubjson.hpp` vor. -- Das Symbol bzw. der Begriff `decode_ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp` vor. -- Das Symbol bzw. der Begriff `decode_ubjson` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `decode_ubjson` kommt in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/decode_ubjson.hpp -- others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp -- others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp -- others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp -- others/jsoncons/test/ubjson/src -- Symbole: jsoncons::ubjson::decode_ubjson, decode_ubjson -- Tests / Beispiele / Benchmarks: others/jsoncons/test/ubjson/src diff --git a/analysis/jsoncons/ref/ubjson/encode_ubjson.md b/analysis/jsoncons/ref/ubjson/encode_ubjson.md deleted file mode 100644 index a861821f59..0000000000 --- a/analysis/jsoncons/ref/ubjson/encode_ubjson.md +++ /dev/null @@ -1,57 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/ubjson/encode_ubjson.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp -- others/jsoncons/examples/src/ubjson_examples.cpp -- others/jsoncons/include/jsoncons_ext/ubjson/encode_ubjson.hpp -- others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp -- others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp -- others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp -- others/jsoncons/test/ubjson/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::ubjson::encode_ubjson, encode_ubjson - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/ubjson/ubjson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp` vorhanden. -- Das Symbol bzw. der Begriff `encode_ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/encode_ubjson.hpp` vor. -- Das Symbol bzw. der Begriff `encode_ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp` vor. -- Das Symbol bzw. der Begriff `encode_ubjson` kommt in `others/jsoncons/test/CMakeLists.txt` vor. -- Das Symbol bzw. der Begriff `encode_ubjson` kommt in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/decode_ubjson_tests.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp -- others/jsoncons/examples/src/ubjson_examples.cpp -- others/jsoncons/include/jsoncons_ext/ubjson/encode_ubjson.hpp -- others/jsoncons/test/ubjson/src/encode_ubjson_tests.cpp -- others/jsoncons/test/ubjson/src/ubjson_cursor_tests.cpp -- others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp -- others/jsoncons/test/ubjson/src -- Symbole: jsoncons::ubjson::encode_ubjson, encode_ubjson -- Tests / Beispiele / Benchmarks: others/jsoncons/test/ubjson/src diff --git a/analysis/jsoncons/ref/ubjson/ubjson.md b/analysis/jsoncons/ref/ubjson/ubjson.md deleted file mode 100644 index 84bd080623..0000000000 --- a/analysis/jsoncons/ref/ubjson/ubjson.md +++ /dev/null @@ -1,63 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/ubjson/ubjson.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/decode_ubjson.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/encode_ubjson.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_cursor.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_encoder.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_error.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_options.hpp -- Relevante Klassen/Funktionen/Symbole: nicht sicher belegbar - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons/json.hpp` ist im Repository unter `others/jsoncons/include/jsoncons/json.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/ubjson/ubjson.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp` vorhanden. -- Der in der Doku verwendete Header `jsoncons_ext/jsonpath/jsonpath.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp` vorhanden. -- Das Symbol bzw. der Begriff `ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/decode_ubjson.hpp` vor. -- Das Symbol bzw. der Begriff `ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/encode_ubjson.hpp` vor. -- Das Symbol bzw. der Begriff `ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp` vor. -- Das Symbol bzw. der Begriff `ubjson` kommt in `others/jsoncons/include/jsoncons_ext/ubjson/ubjson_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/CMakeLists.txt`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: Die Convenience-APIs in den jeweiligen `decode_*`/`encode_*`-Headern erzeugen pro Aufruf Reader/Cursor/Decoder bzw. Encoder neu; `allocator_set`-Overloads sind in den Implementierungen vorhanden. Warum potenziell teuer: Bei vielen kleinen Nachrichten wiederholen sich Setup und temporäre Allokationen. Mögliche Verbesserung: mögliche Optimierung durch Wiederverwendung von Reader-/Cursor-/Encoder-Objekten bzw. durch Einsatz der `allocator_set`-Overloads in Hot Paths. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons/json.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson.hpp -- others/jsoncons/include/jsoncons_ext/jsonpath/jsonpath.hpp -- others/jsoncons/include/jsoncons_ext/jsonpointer/jsonpointer.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/decode_ubjson.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/encode_ubjson.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_cursor.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_encoder.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_error.hpp -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_options.hpp -- Symbole: nicht sicher belegbar -- Tests / Beispiele / Benchmarks: others/jsoncons/test/ubjson/src diff --git a/analysis/jsoncons/ref/ubjson/ubjson_options.md b/analysis/jsoncons/ref/ubjson/ubjson_options.md deleted file mode 100644 index 6751607503..0000000000 --- a/analysis/jsoncons/ref/ubjson/ubjson_options.md +++ /dev/null @@ -1,45 +0,0 @@ -# Analyse: others/jsoncons/doc/ref/ubjson/ubjson_options.md - -## Zugehörige Implementierung -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_options.hpp -- others/jsoncons/test/ubjson/src -- Relevante Klassen/Funktionen/Symbole: jsoncons::ubjson::ubjson_options, ubjson_options, Modifiers - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `jsoncons_ext/ubjson/ubjson_options.hpp` ist im Repository unter `others/jsoncons/include/jsoncons_ext/ubjson/ubjson_options.hpp` vorhanden. -- Das Symbol bzw. der Begriff `Modifiers` kommt in `others/jsoncons/include/jsoncons/basic_json.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_cursor.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons/json_options.hpp` vor. -- Das Symbol bzw. der Begriff `Constructors` kommt in `others/jsoncons/include/jsoncons_ext/bson/bson_cursor.hpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/jsoncons/test/ubjson/src/ubjson_encoder_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Für streaming-lastige Verarbeitung sind die Cursor-/Reader-Pfade klarer als Convenience-Helfer, weil sie Zwischenschritte und Materialisierung transparenter machen. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/jsoncons/include/jsoncons_ext/ubjson/ubjson_options.hpp -- others/jsoncons/test/ubjson/src -- Symbole: jsoncons::ubjson::ubjson_options, ubjson_options, Modifiers -- Tests / Beispiele / Benchmarks: others/jsoncons/test/ubjson/src diff --git a/analysis/simdjson/SUMMARY.md b/analysis/simdjson/SUMMARY.md deleted file mode 100644 index 5b231e9c29..0000000000 --- a/analysis/simdjson/SUMMARY.md +++ /dev/null @@ -1,44 +0,0 @@ -# Summary: simdjson - -Diese Übersicht basiert auf statischer Analyse von Dokumentation, Headern, Tests, Beispielen und Benchmarks im Repository. Vorhandene Tests und Benchmarks wurden in diesem Turn nicht ausgeführt. - -## Übersicht aller geprüften Dateien - -| Doku-Datei | Status | Optimierbar | Priorität | Hauptgrund | -| --- | --- | --- | --- | --- | -| `others/simdjson/doc/basics_doxygen.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/simdjson/doc/implementation-selection.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/simdjson/doc/ondemand_design.md` | teilweise unklar | nein | mittlere Priorität | Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. | -| `others/simdjson/doc/basics.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/simdjson/doc/builder.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/simdjson/doc/compile_time.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/simdjson/doc/compile_time_accessors.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/simdjson/doc/dom.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/simdjson/doc/iterate_many.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/simdjson/doc/parse_many.md` | korrekt | ja | mittlere Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/simdjson/doc/performance.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | -| `others/simdjson/doc/tape.md` | korrekt | nein | niedrige Priorität | Header-/Symbolabgleich und Test-/Beispielzuordnung vorhanden | - -## Korrektheit - -- Bestätigt: 9 Dateien. -- Beispiele bestätigt: `others/simdjson/doc/basics.md`, `others/simdjson/doc/builder.md`, `others/simdjson/doc/compile_time.md`, `others/simdjson/doc/compile_time_accessors.md`, `others/simdjson/doc/dom.md`, `others/simdjson/doc/iterate_many.md`, `others/simdjson/doc/parse_many.md`, `others/simdjson/doc/performance.md` -- Teilweise unklar: 3 Dateien. -- Beispiele teilweise unklar: `others/simdjson/doc/basics_doxygen.md`, `others/simdjson/doc/implementation-selection.md`, `others/simdjson/doc/ondemand_design.md` -- Widersprüchlich: 0 Dateien. -- Wahrscheinlich veraltet: 0 Dateien. - -## Performance - -- Mittlere Priorität: `others/simdjson/doc/basics.md`, `others/simdjson/doc/builder.md`, `others/simdjson/doc/compile_time_accessors.md`, `others/simdjson/doc/dom.md`, `others/simdjson/doc/iterate_many.md`, `others/simdjson/doc/parse_many.md` -- Bereichsübergreifend auffällig: `at_path()`-Konvertierung zu JSON Pointer mit `std::string`-Allokation, Builder-Reallokationen bei zu kleiner Startkapazität sowie batch-size-abhängiges Streaming-Verhalten bei `parse_many()`/`iterate_many()`. - -## Verarbeitung - -- Mittlere Priorität: `others/simdjson/doc/basics.md`, `others/simdjson/doc/builder.md`, `others/simdjson/doc/dom.md`, `others/simdjson/doc/iterate_many.md`, `others/simdjson/doc/parse_many.md` - -## Doku-Anpassungen - -- Mittlere Priorität: `others/simdjson/doc/basics_doxygen.md`, `others/simdjson/doc/implementation-selection.md`, `others/simdjson/doc/ondemand_design.md`, `others/simdjson/doc/basics.md`, `others/simdjson/doc/builder.md`, `others/simdjson/doc/compile_time_accessors.md`, `others/simdjson/doc/dom.md`, `others/simdjson/doc/iterate_many.md`, `others/simdjson/doc/parse_many.md` -- Niedrige Priorität: `others/simdjson/doc/compile_time.md`, `others/simdjson/doc/performance.md`, `others/simdjson/doc/tape.md` -- Konkrete Schwerpunkte: vor allem Klarstellung konzeptioneller Seiten; keine harte API-Diskrepanz mit hoher Sicherheit gefunden. diff --git a/analysis/simdjson/basics.md b/analysis/simdjson/basics.md deleted file mode 100644 index eeb88f9f42..0000000000 --- a/analysis/simdjson/basics.md +++ /dev/null @@ -1,61 +0,0 @@ -# Analyse: others/simdjson/doc/basics.md - -## Zugehörige Implementierung -- others/simdjson/include/simdjson.h -- others/simdjson/examples/quickstart/quickstart.cpp -- others/simdjson/examples/quickstart/quickstart_ondemand.cpp -- others/simdjson/include/simdjson/dom/parser.h -- others/simdjson/include/simdjson/generic/ondemand/document.h -- others/simdjson/include/simdjson/generic/ondemand/value.h -- others/simdjson/include/simdjson/ondemand.h -- others/simdjson/tests/dom/readme_examples.cpp -- others/simdjson/tests/dom/readme_examples_noexceptions.cpp -- others/simdjson/tests/ondemand/ondemand_readme_examples.cpp -- Relevante Klassen/Funktionen/Symbole: Parser, get to get custom types (pre-C++20) - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `simdjson.h` ist im Repository unter `others/simdjson/include/simdjson.h` vorhanden. -- Das Symbol bzw. der Begriff `basics` kommt in `others/simdjson/include/simdjson.h` vor. -- Das Symbol bzw. der Begriff `basics` kommt in `others/simdjson/include/simdjson/generic/ondemand/document.h` vor. -- Das Symbol bzw. der Begriff `basics` kommt in `others/simdjson/include/simdjson/generic/ondemand/value.h` vor. -- Das Symbol bzw. der Begriff `basics` kommt in `others/simdjson/tests/dom/readme_examples.cpp` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/cast_tester.h`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: DOM-`at_path()` ruft in [others/simdjson/include/simdjson/jsonpathutil.h](others/simdjson/include/simdjson/jsonpathutil.h) eine Konvertierung von JSONPath nach JSON Pointer auf und erzeugt dabei ein `std::string`; die Nutzung ist in [others/simdjson/include/simdjson/dom/element-inl.h](others/simdjson/include/simdjson/dom/element-inl.h), `object-inl.h` und `array-inl.h` sichtbar. Warum potenziell teuer: Wiederholte Pfadkonvertierung und String-Allokation fallen bei Hot-Loop-Zugriffen zusätzlich an. Mögliche Verbesserung: mögliche Optimierung durch `at_pointer()` oder die Compile-Time-Accessors statt `at_path()` auf häufig benutzten Pfaden. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die Verarbeitung wird klarer, wenn Parserlebensdauer, Dokumentlebensdauer und Pufferlebensdauer getrennt betrachtet werden; die Header und Tests modellieren diese Trennung bereits deutlich. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/simdjson/include/simdjson.h -- others/simdjson/examples/quickstart/quickstart.cpp -- others/simdjson/examples/quickstart/quickstart_ondemand.cpp -- others/simdjson/include/simdjson/dom/parser.h -- others/simdjson/include/simdjson/generic/ondemand/document.h -- others/simdjson/include/simdjson/generic/ondemand/value.h -- others/simdjson/include/simdjson/ondemand.h -- others/simdjson/tests/dom/readme_examples.cpp -- others/simdjson/tests/dom/readme_examples_noexceptions.cpp -- others/simdjson/tests/ondemand/ondemand_readme_examples.cpp -- Symbole: Parser, get to get custom types (pre-C++20) -- Tests / Beispiele / Benchmarks: others/simdjson/tests/ondemand/ondemand_readme_examples.cpp, others/simdjson/tests/dom/readme_examples.cpp, others/simdjson/examples/quickstart/quickstart.cpp, others/simdjson/examples/quickstart/quickstart_ondemand.cpp diff --git a/analysis/simdjson/basics_doxygen.md b/analysis/simdjson/basics_doxygen.md deleted file mode 100644 index 01b8f2d4cd..0000000000 --- a/analysis/simdjson/basics_doxygen.md +++ /dev/null @@ -1,43 +0,0 @@ -# Analyse: others/simdjson/doc/basics_doxygen.md - -## Zugehörige Implementierung -- others/simdjson/include/simdjson/dom/parser.h -- others/simdjson/include/simdjson/ondemand.h -- others/simdjson/tests/dom/readme_examples.cpp -- others/simdjson/tests/ondemand/ondemand_readme_examples.cpp -- Relevante Klassen/Funktionen/Symbole: basics_doxygen - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: mittel -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist - -## Prüfung der inhaltlichen Korrektheit -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. -- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die Seite ist doxygen-orientiert und enthält wenig direkte API-Aussagen; die Zuordnung zur Implementierung ist vorhanden, aber nur indirekt über die Kernheader und Readme-Beispiele belegbar. -- Die vorhandenen Tests/Benchmarks wurden für diese Analyse nicht ausgeführt; die Einschätzung ist statisch. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/simdjson/include/simdjson/dom/parser.h -- others/simdjson/include/simdjson/ondemand.h -- others/simdjson/tests/dom/readme_examples.cpp -- others/simdjson/tests/ondemand/ondemand_readme_examples.cpp -- Symbole: basics_doxygen -- Tests / Beispiele / Benchmarks: others/simdjson/tests/ondemand/ondemand_readme_examples.cpp, others/simdjson/tests/dom/readme_examples.cpp diff --git a/analysis/simdjson/builder.md b/analysis/simdjson/builder.md deleted file mode 100644 index d2b6f8b41e..0000000000 --- a/analysis/simdjson/builder.md +++ /dev/null @@ -1,62 +0,0 @@ -# Analyse: others/simdjson/doc/builder.md - -## Zugehörige Implementierung -- others/simdjson/include/simdjson -- others/simdjson/include/simdjson.h -- others/simdjson/include/simdjson/builder.h -- others/simdjson/include/simdjson/compile_time_json-inl.h -- others/simdjson/include/simdjson/convert.h -- others/simdjson/include/simdjson/generic/builder/json_builder.h -- others/simdjson/include/simdjson/generic/builder/json_string_builder.h -- others/simdjson/include/simdjson/jsonpathutil.h -- others/simdjson/include/simdjson/ondemand.h -- others/simdjson/include/simdjson/padded_string-inl.h -- Relevante Klassen/Funktionen/Symbole: C++20, Customization, Pretty formatted (fractured JSON) - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `simdjson` ist im Repository unter `others/simdjson/include/simdjson` vorhanden. -- Der in der Doku verwendete Header `simdjson.h` ist im Repository unter `others/simdjson/include/simdjson.h` vorhanden. -- Das Symbol bzw. der Begriff `builder` kommt in `others/simdjson/include/simdjson.h` vor. -- Das Symbol bzw. der Begriff `builder` kommt in `others/simdjson/include/simdjson/builder.h` vor. -- Das Symbol bzw. der Begriff `builder` kommt in `others/simdjson/include/simdjson/compile_time_json-inl.h` vor. -- Das Symbol bzw. der Begriff `C++20` kommt in `others/simdjson/include/simdjson/convert.h` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/CMakeLists.txt`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `builder::string_builder` vergrößert seinen Puffer bei Bedarf dynamisch (`capacity_check`, `grow_buffer`) in [others/simdjson/include/simdjson/generic/builder/json_string_builder-inl.h](others/simdjson/include/simdjson/generic/builder/json_string_builder-inl.h). Warum potenziell teuer: Bei stark unterschätzter Startkapazität entstehen zusätzliche Reallokationen und Kopien. Mögliche Verbesserung: mögliche Optimierung durch sinnvolle Initialkapazität und Wiederverwendung derselben Builder-Instanz. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die Wiederverwendung eines `string_builder` vereinfacht den Datenfluss gegenüber vielen kurzlebigen `to_json`-Aufrufen mit impliziten Zwischenobjekten. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/simdjson/include/simdjson -- others/simdjson/include/simdjson.h -- others/simdjson/include/simdjson/builder.h -- others/simdjson/include/simdjson/compile_time_json-inl.h -- others/simdjson/include/simdjson/convert.h -- others/simdjson/include/simdjson/generic/builder/json_builder.h -- others/simdjson/include/simdjson/generic/builder/json_string_builder.h -- others/simdjson/include/simdjson/jsonpathutil.h -- others/simdjson/include/simdjson/ondemand.h -- others/simdjson/include/simdjson/padded_string-inl.h -- Symbole: C++20, Customization, Pretty formatted (fractured JSON) -- Tests / Beispiele / Benchmarks: others/simdjson/tests/builder/builder_string_builder_tests.cpp, others/simdjson/tests/builder/static_reflection_builder_tests.cpp diff --git a/analysis/simdjson/compile_time.md b/analysis/simdjson/compile_time.md deleted file mode 100644 index 924dd426ae..0000000000 --- a/analysis/simdjson/compile_time.md +++ /dev/null @@ -1,60 +0,0 @@ -# Analyse: others/simdjson/doc/compile_time.md - -## Zugehörige Implementierung -- others/simdjson/include/simdjson.h -- others/simdjson/include/simdjson/compile_time_json-inl.h -- others/simdjson/include/simdjson/compile_time_json.h -- others/simdjson/include/simdjson/convert.h -- others/simdjson/include/simdjson/generic/builder/fractured_json_builder.h -- others/simdjson/include/simdjson/generic/ondemand/amalgamated.h -- others/simdjson/include/simdjson/generic/ondemand/compile_time_accessors.h -- others/simdjson/include/simdjson/generic/ondemand/document.h -- others/simdjson/tests/compile_time/basic_compile_time_tests.cpp -- others/simdjson/tests/compile_time/compile_time_json_tests.cpp -- Relevante Klassen/Funktionen/Symbole: Introduction, Concepts, Limitations (compile-time errors) - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `simdjson.h` ist im Repository unter `others/simdjson/include/simdjson.h` vorhanden. -- Das Symbol bzw. der Begriff `compile_time` kommt in `others/simdjson/include/simdjson.h` vor. -- Das Symbol bzw. der Begriff `compile_time` kommt in `others/simdjson/include/simdjson/compile_time_json-inl.h` vor. -- Das Symbol bzw. der Begriff `compile_time` kommt in `others/simdjson/include/simdjson/compile_time_json.h` vor. -- Das Symbol bzw. der Begriff `Example` kommt in `others/simdjson/include/simdjson/convert.h` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/simdjson/include/simdjson.h -- others/simdjson/include/simdjson/compile_time_json-inl.h -- others/simdjson/include/simdjson/compile_time_json.h -- others/simdjson/include/simdjson/convert.h -- others/simdjson/include/simdjson/generic/builder/fractured_json_builder.h -- others/simdjson/include/simdjson/generic/ondemand/amalgamated.h -- others/simdjson/include/simdjson/generic/ondemand/compile_time_accessors.h -- others/simdjson/include/simdjson/generic/ondemand/document.h -- others/simdjson/tests/compile_time/basic_compile_time_tests.cpp -- others/simdjson/tests/compile_time/compile_time_json_tests.cpp -- Symbole: Introduction, Concepts, Limitations (compile-time errors) -- Tests / Beispiele / Benchmarks: others/simdjson/tests/compile_time/basic_compile_time_tests.cpp, others/simdjson/tests/compile_time/compile_time_json_tests.cpp diff --git a/analysis/simdjson/compile_time_accessors.md b/analysis/simdjson/compile_time_accessors.md deleted file mode 100644 index 3563d88b6a..0000000000 --- a/analysis/simdjson/compile_time_accessors.md +++ /dev/null @@ -1,61 +0,0 @@ -# Analyse: others/simdjson/doc/compile_time_accessors.md - -## Zugehörige Implementierung -- others/simdjson/include/simdjson.h -- others/simdjson/benchmark/accessor_performance/README.md -- others/simdjson/benchmark/accessor_performance/compile_time_accessors.h -- others/simdjson/benchmark/bench_ondemand.cpp -- others/simdjson/include/simdjson/generic/ondemand/amalgamated.h -- others/simdjson/include/simdjson/generic/ondemand/compile_time_accessors.h -- others/simdjson/tests/ondemand/compile_time_json_path_tests.cpp -- others/simdjson/tests/ondemand/compile_time_json_pointer_tests.cpp -- others/simdjson/tests/ondemand/compile_time_no_validation_tests.cpp -- Relevante Klassen/Funktionen/Symbole: Overview, Requirements, Mode 1: With Type Validation (Recommended) - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `simdjson.h` ist im Repository unter `others/simdjson/include/simdjson.h` vorhanden. -- Das Symbol bzw. der Begriff `compile_time_accessors` kommt in `others/simdjson/include/simdjson/generic/ondemand/amalgamated.h` vor. -- Das Symbol bzw. der Begriff `How It Works` kommt in `others/simdjson/include/simdjson/generic/ondemand/compile_time_accessors.h` vor. -- Das Symbol bzw. der Begriff `compile_time_accessors` kommt in `others/simdjson/benchmark/bench_ondemand.cpp` vor. -- Das Symbol bzw. der Begriff `compile_time_accessors` kommt in `others/simdjson/benchmark/accessor_performance/README.md` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/cast_tester.h`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/checkimplementation.cpp`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/fractured_json_tests.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: DOM-`at_path()` ruft in [others/simdjson/include/simdjson/jsonpathutil.h](others/simdjson/include/simdjson/jsonpathutil.h) eine Konvertierung von JSONPath nach JSON Pointer auf und erzeugt dabei ein `std::string`; die Nutzung ist in [others/simdjson/include/simdjson/dom/element-inl.h](others/simdjson/include/simdjson/dom/element-inl.h), `object-inl.h` und `array-inl.h` sichtbar. Warum potenziell teuer: Wiederholte Pfadkonvertierung und String-Allokation fallen bei Hot-Loop-Zugriffen zusätzlich an. Mögliche Verbesserung: mögliche Optimierung durch `at_pointer()` oder die Compile-Time-Accessors statt `at_path()` auf häufig benutzten Pfaden. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/simdjson/include/simdjson.h -- others/simdjson/benchmark/accessor_performance/README.md -- others/simdjson/benchmark/accessor_performance/compile_time_accessors.h -- others/simdjson/benchmark/bench_ondemand.cpp -- others/simdjson/include/simdjson/generic/ondemand/amalgamated.h -- others/simdjson/include/simdjson/generic/ondemand/compile_time_accessors.h -- others/simdjson/tests/ondemand/compile_time_json_path_tests.cpp -- others/simdjson/tests/ondemand/compile_time_json_pointer_tests.cpp -- others/simdjson/tests/ondemand/compile_time_no_validation_tests.cpp -- Symbole: Overview, Requirements, Mode 1: With Type Validation (Recommended) -- Tests / Beispiele / Benchmarks: others/simdjson/tests/ondemand/compile_time_json_path_tests.cpp, others/simdjson/tests/ondemand/compile_time_json_pointer_tests.cpp, others/simdjson/tests/ondemand/compile_time_no_validation_tests.cpp, others/simdjson/benchmark/accessor_performance/compile_time_accessors.h diff --git a/analysis/simdjson/dom.md b/analysis/simdjson/dom.md deleted file mode 100644 index e965b20c10..0000000000 --- a/analysis/simdjson/dom.md +++ /dev/null @@ -1,60 +0,0 @@ -# Analyse: others/simdjson/doc/dom.md - -## Zugehörige Implementierung -- others/simdjson/include/simdjson.h -- others/simdjson/include/simdjson/arm64/implementation.h -- others/simdjson/include/simdjson/base.h -- others/simdjson/include/simdjson/dom.h -- others/simdjson/include/simdjson/dom/array-inl.h -- others/simdjson/include/simdjson/dom/array.h -- others/simdjson/include/simdjson/dom/element.h -- others/simdjson/include/simdjson/dom/object.h -- others/simdjson/include/simdjson/dom/parser.h -- others/simdjson/include/simdjson/error.h -- Relevante Klassen/Funktionen/Symbole: dom - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `simdjson.h` ist im Repository unter `others/simdjson/include/simdjson.h` vorhanden. -- Das Symbol bzw. der Begriff `dom` kommt in `others/simdjson/include/simdjson.h` vor. -- Das Symbol bzw. der Begriff `dom` kommt in `others/simdjson/include/simdjson/base.h` vor. -- Das Symbol bzw. der Begriff `dom` kommt in `others/simdjson/include/simdjson/dom.h` vor. -- Das Symbol bzw. der Begriff `dom` kommt in `others/simdjson/include/simdjson/error.h` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Aus dem Code ist ein potenzieller Setup-/Allokationsmehraufwand im High-Level-Pfad erkennbar; Details stehen im Abschnitt zu Performance-Verbesserungen. Ein harter Funktionsfehler ist daraus allein nicht ableitbar. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: DOM-`at_path()` ruft in [others/simdjson/include/simdjson/jsonpathutil.h](others/simdjson/include/simdjson/jsonpathutil.h) eine Konvertierung von JSONPath nach JSON Pointer auf und erzeugt dabei ein `std::string`; die Nutzung ist in [others/simdjson/include/simdjson/dom/element-inl.h](others/simdjson/include/simdjson/dom/element-inl.h), `object-inl.h` und `array-inl.h` sichtbar. Warum potenziell teuer: Wiederholte Pfadkonvertierung und String-Allokation fallen bei Hot-Loop-Zugriffen zusätzlich an. Mögliche Verbesserung: mögliche Optimierung durch `at_pointer()` oder die Compile-Time-Accessors statt `at_path()` auf häufig benutzten Pfaden. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die Verarbeitung wird klarer, wenn Parserlebensdauer, Dokumentlebensdauer und Pufferlebensdauer getrennt betrachtet werden; die Header und Tests modellieren diese Trennung bereits deutlich. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/simdjson/include/simdjson.h -- others/simdjson/include/simdjson/arm64/implementation.h -- others/simdjson/include/simdjson/base.h -- others/simdjson/include/simdjson/dom.h -- others/simdjson/include/simdjson/dom/array-inl.h -- others/simdjson/include/simdjson/dom/array.h -- others/simdjson/include/simdjson/dom/element.h -- others/simdjson/include/simdjson/dom/object.h -- others/simdjson/include/simdjson/dom/parser.h -- others/simdjson/include/simdjson/error.h -- Symbole: dom -- Tests / Beispiele / Benchmarks: others/simdjson/tests/dom/basictests.cpp, others/simdjson/tests/dom/json_path_tests.cpp, others/simdjson/tests/dom/document_tests.cpp diff --git a/analysis/simdjson/implementation-selection.md b/analysis/simdjson/implementation-selection.md deleted file mode 100644 index 9d3f41b89f..0000000000 --- a/analysis/simdjson/implementation-selection.md +++ /dev/null @@ -1,43 +0,0 @@ -# Analyse: others/simdjson/doc/implementation-selection.md - -## Zugehörige Implementierung -- others/simdjson/include/simdjson/implementation.h -- others/simdjson/src/implementation.cpp -- others/simdjson/src/internal/isadetection.h -- others/simdjson/tests/checkimplementation.cpp -- Relevante Klassen/Funktionen/Symbole: implementation-selection - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: mittel -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist - -## Prüfung der inhaltlichen Korrektheit -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. -- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die Seite beschreibt überwiegend Architektur-/Build-Verhalten. Die zugrunde liegende Laufzeit-Erkennung ist im Code sichtbar, aber der Text wurde in diesem Turn nicht gegen reale Hardware-Pfade ausgeführt. -- Die vorhandenen Tests/Benchmarks wurden für diese Analyse nicht ausgeführt; die Einschätzung ist statisch. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/simdjson/include/simdjson/implementation.h -- others/simdjson/src/implementation.cpp -- others/simdjson/src/internal/isadetection.h -- others/simdjson/tests/checkimplementation.cpp -- Symbole: implementation-selection -- Tests / Beispiele / Benchmarks: others/simdjson/tests/checkimplementation.cpp diff --git a/analysis/simdjson/iterate_many.md b/analysis/simdjson/iterate_many.md deleted file mode 100644 index c1c8a2f7e2..0000000000 --- a/analysis/simdjson/iterate_many.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/simdjson/doc/iterate_many.md - -## Zugehörige Implementierung -- others/simdjson/include/simdjson/arm64/simd.h -- others/simdjson/include/simdjson/dom/object-inl.h -- others/simdjson/include/simdjson/dom/parser.h -- others/simdjson/include/simdjson/generic/ondemand/base.h -- others/simdjson/include/simdjson/generic/ondemand/document_stream.h -- others/simdjson/include/simdjson/haswell/simd.h -- others/simdjson/include/simdjson/icelake/simd.h -- others/simdjson/include/simdjson/ppc64/simd.h -- others/simdjson/include/simdjson/westmere/simd.h -- others/simdjson/tests/ondemand/ondemand_document_stream_tests.cpp -- Relevante Klassen/Funktionen/Symbole: Context, Design, Threads, iterate_many - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `Design` kommt in `others/simdjson/include/simdjson/arm64/simd.h` vor. -- Das Symbol bzw. der Begriff `Design` kommt in `others/simdjson/include/simdjson/dom/object-inl.h` vor. -- Das Symbol bzw. der Begriff `Threads` kommt in `others/simdjson/include/simdjson/dom/parser.h` vor. -- Das Symbol bzw. der Begriff `Design` kommt in `others/simdjson/include/simdjson/haswell/simd.h` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/dom/allparserscheckfile.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `document_stream` arbeitet batch-basiert und hält dafür Parser-/Fensterzustand in [others/simdjson/include/simdjson/dom/document_stream.h](others/simdjson/include/simdjson/dom/document_stream.h) bzw. `document_stream-inl.h`. Warum potenziell teuer: Ein zu kleines Batch-Fenster erhöht Verwaltungsaufwand oder führt zu `truncated_bytes()`-Resten. Mögliche Verbesserung: mögliche Optimierung durch realistische `batch_size`-Wahl und Wiederverwendung desselben Parsers. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die Verarbeitung wird klarer, wenn Parserlebensdauer, Dokumentlebensdauer und Pufferlebensdauer getrennt betrachtet werden; die Header und Tests modellieren diese Trennung bereits deutlich. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/simdjson/include/simdjson/arm64/simd.h -- others/simdjson/include/simdjson/dom/object-inl.h -- others/simdjson/include/simdjson/dom/parser.h -- others/simdjson/include/simdjson/generic/ondemand/base.h -- others/simdjson/include/simdjson/generic/ondemand/document_stream.h -- others/simdjson/include/simdjson/haswell/simd.h -- others/simdjson/include/simdjson/icelake/simd.h -- others/simdjson/include/simdjson/ppc64/simd.h -- others/simdjson/include/simdjson/westmere/simd.h -- others/simdjson/tests/ondemand/ondemand_document_stream_tests.cpp -- Symbole: Context, Design, Threads, iterate_many -- Tests / Beispiele / Benchmarks: others/simdjson/tests/ondemand/ondemand_document_stream_tests.cpp, others/simdjson/tests/ondemand/ondemand_iterate_many_csv.cpp diff --git a/analysis/simdjson/ondemand_design.md b/analysis/simdjson/ondemand_design.md deleted file mode 100644 index 510d0918f2..0000000000 --- a/analysis/simdjson/ondemand_design.md +++ /dev/null @@ -1,43 +0,0 @@ -# Analyse: others/simdjson/doc/ondemand_design.md - -## Zugehörige Implementierung -- others/simdjson/include/simdjson/generic/ondemand/document.h -- others/simdjson/include/simdjson/ondemand.h -- others/simdjson/tests/ondemand/ondemand_document_stream_tests.cpp -- others/simdjson/tests/ondemand/ondemand_object_tests.cpp -- Relevante Klassen/Funktionen/Symbole: Event-Based Parsers (SAX, SAJ, etc.) - -## Kurzfazit -- Status: teilweise unklar -- Vertrauensniveau: mittel -- Begründung: Die Zuordnung zu Headern und Symbolen ist nachvollziehbar, aber die Evidenz ist nicht vollständig. Entweder fehlen direkt zuordenbare Tests/Beispiele, oder die Seite beschreibt vor allem Konzept-, Grammatik- oder Designaspekte statt einer einzelnen API. Deshalb ist die fachliche Konsistenz nur teilweise sicher belegbar. - -## Was durch Code belegt ist - -## Prüfung der inhaltlichen Korrektheit -- Nicht sicher bestätigt: Es ist nicht sicher belegbar, ob die prose-lastigen Aussagen durch einen spezifischen Test oder ein Beispiel direkt abgesichert sind. -- Nicht sicher bestätigt: Die Seite beschreibt eher Konzept/Grammatik/Überblick als ein einzelnes Symbol; eine punktgenaue Verifikation bleibt deshalb teilweise unklar. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die Seite ist überwiegend ein Designtext. Die relevanten Ondemand-Header und Tests existieren, aber die Designbehauptungen wurden nicht durch Ausführung oder Benchmarking validiert. -- Die vorhandenen Tests/Benchmarks wurden für diese Analyse nicht ausgeführt; die Einschätzung ist statisch. - -## Vorschläge zur Dokumentationsanpassung -- Die Doku an die aktuellen Header-/Symbolnamen anpassen und die Zuordnung zu den vorhandenen Tests/Beispielen klarer machen. - -## Quellen im Repository -- others/simdjson/include/simdjson/generic/ondemand/document.h -- others/simdjson/include/simdjson/ondemand.h -- others/simdjson/tests/ondemand/ondemand_document_stream_tests.cpp -- others/simdjson/tests/ondemand/ondemand_object_tests.cpp -- Symbole: Event-Based Parsers (SAX, SAJ, etc.) -- Tests / Beispiele / Benchmarks: others/simdjson/tests/ondemand/ondemand_document_stream_tests.cpp, others/simdjson/tests/ondemand/ondemand_object_tests.cpp diff --git a/analysis/simdjson/parse_many.md b/analysis/simdjson/parse_many.md deleted file mode 100644 index c0df47ae3b..0000000000 --- a/analysis/simdjson/parse_many.md +++ /dev/null @@ -1,59 +0,0 @@ -# Analyse: others/simdjson/doc/parse_many.md - -## Zugehörige Implementierung -- others/simdjson/include/simdjson/arm64/simd.h -- others/simdjson/include/simdjson/dom/base.h -- others/simdjson/include/simdjson/dom/document_stream.h -- others/simdjson/include/simdjson/dom/object-inl.h -- others/simdjson/include/simdjson/dom/parser-inl.h -- others/simdjson/include/simdjson/dom/parser.h -- others/simdjson/include/simdjson/haswell/simd.h -- others/simdjson/include/simdjson/icelake/simd.h -- others/simdjson/tests/dom/document_stream_tests.cpp -- others/simdjson/tests/dom/parse_many_test.cpp -- Relevante Klassen/Funktionen/Symbole: Context, Design, Threads, parse_many - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `Design` kommt in `others/simdjson/include/simdjson/arm64/simd.h` vor. -- Das Symbol bzw. der Begriff `parse_many` kommt in `others/simdjson/include/simdjson/dom/base.h` vor. -- Das Symbol bzw. der Begriff `parse_many` kommt in `others/simdjson/include/simdjson/dom/document_stream.h` vor. -- Das Symbol bzw. der Begriff `Design` kommt in `others/simdjson/include/simdjson/dom/object-inl.h` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/compilation_failure_tests/CMakeLists.txt`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Beobachtung: `document_stream` arbeitet batch-basiert und hält dafür Parser-/Fensterzustand in [others/simdjson/include/simdjson/dom/document_stream.h](others/simdjson/include/simdjson/dom/document_stream.h) bzw. `document_stream-inl.h`. Warum potenziell teuer: Ein zu kleines Batch-Fenster erhöht Verwaltungsaufwand oder führt zu `truncated_bytes()`-Resten. Mögliche Verbesserung: mögliche Optimierung durch realistische `batch_size`-Wahl und Wiederverwendung desselben Parsers. Sicherheitsgrad der Aussage: hoch. - -## Potenzielle Verbesserungen in der Verarbeitung -- Die Verarbeitung wird klarer, wenn Parserlebensdauer, Dokumentlebensdauer und Pufferlebensdauer getrennt betrachtet werden; die Header und Tests modellieren diese Trennung bereits deutlich. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/simdjson/include/simdjson/arm64/simd.h -- others/simdjson/include/simdjson/dom/base.h -- others/simdjson/include/simdjson/dom/document_stream.h -- others/simdjson/include/simdjson/dom/object-inl.h -- others/simdjson/include/simdjson/dom/parser-inl.h -- others/simdjson/include/simdjson/dom/parser.h -- others/simdjson/include/simdjson/haswell/simd.h -- others/simdjson/include/simdjson/icelake/simd.h -- others/simdjson/tests/dom/document_stream_tests.cpp -- others/simdjson/tests/dom/parse_many_test.cpp -- Symbole: Context, Design, Threads, parse_many -- Tests / Beispiele / Benchmarks: others/simdjson/tests/dom/parse_many_test.cpp, others/simdjson/tests/dom/document_stream_tests.cpp diff --git a/analysis/simdjson/performance.md b/analysis/simdjson/performance.md deleted file mode 100644 index 94c6e019a6..0000000000 --- a/analysis/simdjson/performance.md +++ /dev/null @@ -1,62 +0,0 @@ -# Analyse: others/simdjson/doc/performance.md - -## Zugehörige Implementierung -- others/simdjson/include/simdjson.h -- others/simdjson/benchmark/bench_dom_api.cpp -- others/simdjson/benchmark/bench_ondemand.cpp -- others/simdjson/benchmark/benchmark.h -- others/simdjson/doc/performance.md -- others/simdjson/include/simdjson/arm64/simd.h -- others/simdjson/include/simdjson/dom/document_stream-inl.h -- others/simdjson/include/simdjson/dom/object-inl.h -- others/simdjson/include/simdjson/dom/parser.h -- others/simdjson/include/simdjson/dom/serialization-inl.h -- Relevante Klassen/Funktionen/Symbole: performance - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Der in der Doku verwendete Header `simdjson.h` ist im Repository unter `others/simdjson/include/simdjson.h` vorhanden. -- Das Symbol bzw. der Begriff `performance` kommt in `others/simdjson/include/simdjson/implementation.h` vor. -- Das Symbol bzw. der Begriff `performance` kommt in `others/simdjson/include/simdjson/padded_string.h` vor. -- Das Symbol bzw. der Begriff `performance` kommt in `others/simdjson/include/simdjson/arm64/simd.h` vor. -- Das Symbol bzw. der Begriff `performance` kommt in `others/simdjson/include/simdjson/dom/document_stream-inl.h` vor. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/cast_tester.h`. -- Es gibt einen zugeordneten Test-/Beispiel-/Benchmark-Treffer in `others/simdjson/tests/checkimplementation.cpp`. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Der dokumentierte öffentliche Header ist im Repository vorhanden. -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/simdjson/include/simdjson.h -- others/simdjson/benchmark/bench_dom_api.cpp -- others/simdjson/benchmark/bench_ondemand.cpp -- others/simdjson/benchmark/benchmark.h -- others/simdjson/doc/performance.md -- others/simdjson/include/simdjson/arm64/simd.h -- others/simdjson/include/simdjson/dom/document_stream-inl.h -- others/simdjson/include/simdjson/dom/object-inl.h -- others/simdjson/include/simdjson/dom/parser.h -- others/simdjson/include/simdjson/dom/serialization-inl.h -- Symbole: performance -- Tests / Beispiele / Benchmarks: others/simdjson/benchmark/bench_ondemand.cpp, others/simdjson/benchmark/bench_dom_api.cpp diff --git a/analysis/simdjson/tape.md b/analysis/simdjson/tape.md deleted file mode 100644 index 257ac9d66c..0000000000 --- a/analysis/simdjson/tape.md +++ /dev/null @@ -1,58 +0,0 @@ -# Analyse: others/simdjson/doc/tape.md - -## Zugehörige Implementierung -- others/simdjson/include/simdjson/base.h -- others/simdjson/include/simdjson/convert.h -- others/simdjson/include/simdjson/dom.h -- others/simdjson/include/simdjson/dom/array-inl.h -- others/simdjson/include/simdjson/dom/array.h -- others/simdjson/include/simdjson/dom/base.h -- others/simdjson/include/simdjson/dom/document-inl.h -- others/simdjson/include/simdjson/dom/document.h -- others/simdjson/src/generic/stage2/tape_builder.h -- others/simdjson/tests/dom/document_tests.cpp -- Relevante Klassen/Funktionen/Symbole: nicht sicher belegbar - -## Kurzfazit -- Status: korrekt -- Vertrauensniveau: hoch -- Begründung: Die Seite lässt sich auf konkrete Header sowie auf mindestens einen zugeordneten Test-, Beispiel- oder Benchmarkpfad im Repository zurückführen. Bei der statischen Prüfung wurden keine direkt belegbaren Widersprüche zwischen Doku und Implementierung gefunden. Etwaige Optimierungshinweise betreffen Nutzungspfade oder potenzielle Effizienzverbesserungen, nicht nachgewiesene Fehlfunktionen. - -## Was durch Code belegt ist -- Das Symbol bzw. der Begriff `tape` kommt in `others/simdjson/include/simdjson/base.h` vor. -- Das Symbol bzw. der Begriff `Example` kommt in `others/simdjson/include/simdjson/convert.h` vor. -- Das Symbol bzw. der Begriff `tape` kommt in `others/simdjson/include/simdjson/dom.h` vor. -- Das Symbol bzw. der Begriff `tape` kommt in `others/simdjson/include/simdjson/dom/array-inl.h` vor. - -## Prüfung der inhaltlichen Korrektheit -- Bestätigt: Die benannte API bzw. der benannte Typ lässt sich im Code über konkrete Symboltreffer nachvollziehen. -- Bestätigt: Mindestens ein Test-, Beispiel- oder Benchmark-Dateipfad mit Bezug zur API ist im Repository vorhanden. - -## Mögliche Probleme in der Implementierung -- Keine belastbaren, klar lokalisierbaren Implementierungsprobleme gefunden, die sich allein aus dem Repository-Inhalt sicher belegen lassen. - -## Potenzielle Performance-Verbesserungen -- Keine belastbaren, doc-spezifischen Performance-Verbesserungen aus dem Code ableitbar. - -## Potenzielle Verbesserungen in der Verarbeitung -- Keine zusätzlichen, konkret begründbaren Verarbeitungsvorschläge aus dem Repository ableitbar. - -## Unklarheiten / nicht belegbare Punkte -- Die zugeordneten Tests/Beispiele/Benchmarks wurden für diese Analyse nicht ausgeführt; ihre Existenz stützt nur indirekt die Bewertung. - -## Vorschläge zur Dokumentationsanpassung -- Keine zwingende Dokumentationsanpassung aus dem aktuellen Repository-Inhalt ableitbar. - -## Quellen im Repository -- others/simdjson/include/simdjson/base.h -- others/simdjson/include/simdjson/convert.h -- others/simdjson/include/simdjson/dom.h -- others/simdjson/include/simdjson/dom/array-inl.h -- others/simdjson/include/simdjson/dom/array.h -- others/simdjson/include/simdjson/dom/base.h -- others/simdjson/include/simdjson/dom/document-inl.h -- others/simdjson/include/simdjson/dom/document.h -- others/simdjson/src/generic/stage2/tape_builder.h -- others/simdjson/tests/dom/document_tests.cpp -- Symbole: nicht sicher belegbar -- Tests / Beispiele / Benchmarks: others/simdjson/tests/dom/document_tests.cpp diff --git a/doc/Makefile.am b/doc/Makefile.am index dfada090ff..f6aebff44d 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -6,7 +6,8 @@ ACLOCAL_AMFLAGS = -I build # distribution of the Doxygen configuration file EXTRA_DIST = \ - doxygen.cfg + doxygen.cfg \ + jsoncons_number_scan_assessment.md MAINTAINERCLEANFILES = \ @@ -14,4 +15,3 @@ MAINTAINERCLEANFILES = \ doxygen_sqlite3.db \ html \ latex - diff --git a/doc/jsoncons_number_scan_assessment.md b/doc/jsoncons_number_scan_assessment.md new file mode 100644 index 0000000000..95d40ac3e9 --- /dev/null +++ b/doc/jsoncons_number_scan_assessment.md @@ -0,0 +1,159 @@ +# Assessment of the jsoncons Number Path + +# 1. Deutsch + +## 1.1 Zweck + +Dieses Dokument beschreibt den aktuellen Zahlpfad des `jsoncons`-Backends in dieser Repository-Version und die dazu ergaenzten Regression-Tests. Es dokumentiert den sichtbaren Implementierungsstand belegt am Code und an der vendorten `jsoncons`-Dokumentation, ohne Aenderungen an Third-Party-Code vorauszusetzen. + +## 1.2 Zusammenfassung + +Die aktuelle Implementierung ist im gegebenen Scope funktional korrekt und abgeschlossen, auch wenn der zusaetzliche Zahlenscan eine bekannte Performance-Kostenstelle bleibt. + +Der aktuelle Code verarbeitet Zahlenevents im `jsoncons`-Backend ueber `emitEvent(...)` und verwendet dafuer zusaetzlich einen `RawJsonTokenCursor`, der Rohzahlentoken direkt aus dem Original-Input rekonstruiert (`src/request_body_processor/json_backend_jsoncons.cc:242-252`, `src/request_body_processor/json_backend_jsoncons.cc:523-539`, `src/request_body_processor/json_backend_jsoncons.cc:577-705`). + +Eine backend-only Entfernung dieses Scans ist im sichtbaren Scope nicht belastbar belegt, weil der oeffentliche Cursor-Kontext der vendorten `jsoncons`-Version hier keine nutzbaren `begin_position()`- und `end_position()`-Werte bereitstellt (`others/jsoncons/include/jsoncons/json_cursor.hpp:405-457`, `others/jsoncons/include/jsoncons/ser_utils.hpp:18-46`). + +Als Regression-Schutz wurden exakte Lexemtests am `JsonEventSink::on_number(std::string_view)`-Rand und zusaetzliche End-to-End-Regressionsfaelle fuer fehlende Root-Scalar-Zahlen ergaenzt (`test/unit/json_backend_depth_tests.cc:149-316`, `test/test-cases/regression/request-body-parser-json-backend-edgecases.json:47-360`). + +## 1.3 Technische Umsetzung im aktuellen Code + +`JSONAdapter::parse(...)` ist der gemeinsame Eintrittspunkt und ruft bei einem Build mit `MSC_JSON_BACKEND_JSONCONS` den Pfad `parseDocumentWithJsoncons(...)` auf (`src/request_body_processor/json_adapter.cc:59-78`). + +`parseDocumentWithJsoncons(...)` konfiguriert `jsoncons::json_options` mit `max_nesting_depth`, `lossless_number(true)` und `lossless_bignum(true)`, baut einen `jsoncons::json_string_cursor` ueber dem Input auf und initialisiert parallel dazu einen `RawJsonTokenCursor` ueber demselben Eingabestring (`src/request_body_processor/json_backend_jsoncons.cc:716-760`). + +Der zusaetzliche Rohscan ist im lokalen Hilfstyp `RawJsonTokenCursor` implementiert. `consumeNextNumberToken(...)` sucht ab der aktuellen Cursor-Position zuerst mit `skipToNextNumberToken(...)` nach dem naechsten Zahlentoken und liest das Token dann mit `consumeNumberAt(...)` ein (`src/request_body_processor/json_backend_jsoncons.cc:242-252`, `src/request_body_processor/json_backend_jsoncons.cc:425-486`, `src/request_body_processor/json_backend_jsoncons.cc:523-539`). + +`consumeNumberAt(...)` behandelt dabei sichtbar Vorzeichen, Ganzzahlteil, Nachkommateil und Exponent einschliesslich Exponent-Vorzeichen (`src/request_body_processor/json_backend_jsoncons.cc:429-486`). `skipInsignificantAt(...)` ueberspringt Leerraum, Komma und Doppelpunkt, waehrend `isNumberBoundary(...)` Leerraum sowie `,`, `]` und `}` als Zahlgrenzen erkennt (`src/request_body_processor/json_backend_jsoncons.cc:298-315`). + +Im Eventpfad gibt es zwei relevante Zahlzweige. + +- Fuer `string_value`-Events, die intern als numerische Stringevents erkannt werden, versucht der Code zuerst `advanceExactNumber(decoded_number, ...)`. Wenn das gelingt, wird der dekodierte String direkt an `on_number(...)` weitergegeben. Wenn das nicht gelingt, faellt der Code auf `consumeNextNumberToken(...)` und danach auf `rawNumberFromContext(...)` zurueck (`src/request_body_processor/json_backend_jsoncons.cc:622-658`). +- Fuer `int64_value`, `uint64_value`, `double_value` und `half_value` wird immer zuerst `consumeNextNumberToken(...)` aufgerufen. Das Ergebnis wird dann ueber `rawNumberFromContext(...)` materialisiert und an `on_number(...)` weitergereicht (`src/request_body_processor/json_backend_jsoncons.cc:684-705`). + +`rawNumberFromContext(...)` arbeitet in klarer Reihenfolge. Zuerst versucht die Funktion, einen Kandidaten ueber `context.begin_position()` und `context.end_position()` aus dem Original-Input auszuschneiden. Falls dieser Kandidat nicht passt, verwendet sie den bereits gescannten Tokenstring. Fuer numerische Stringevents kann sie zuletzt noch den dekodierten Event-String verwenden, sofern dieser selbst ein gueltiges JSON-Zahllexem ist (`src/request_body_processor/json_backend_jsoncons.cc:545-575`). + +Die aktivierten Optionen beeinflussen die von `jsoncons` gelieferten Eventformen. Laut vendorter Dokumentation liest `lossless_number(true)` Zahlen mit Nachkommateil oder Exponent als String mit `semantic_tag::bigdec`, und `lossless_bignum(true)` behaelt uebergrosse Ganzzahlen als String mit `semantic_tag::bigint` und uebergrosse Gleitkommawerte als `bigdec` (`others/jsoncons/doc/ref/corelib/basic_json_options.md:25-29`). + +Der Parsercode belegt diese Eventformen direkt. Bei Integer-Ueberlauf emittiert der Parser `string_value(..., semantic_tag::bigint, ...)`, und bei aktivem `lossless_number_` emittiert er fuer Zahlen mit Nachkommateil oder Exponent `string_value(..., semantic_tag::bigdec, ...)` (`others/jsoncons/include/jsoncons/json_parser.hpp:2458-2554`). + +Die internen Parserpositionsdaten sind im Parser selbst vorhanden. Beim ersten `-`, bei `0` und bei `1` bis `9` setzt der Parser `begin_position_`, `parse_number(...)` verarbeitet Integer-, Fraction- und Exponent-Anteile, und die Parserklasse ueberschreibt `begin_position()` und `end_position()` (`others/jsoncons/include/jsoncons/json_parser.hpp:1096-1126`, `others/jsoncons/include/jsoncons/json_parser.hpp:1720-1940`, `others/jsoncons/include/jsoncons/json_parser.hpp:2380-2392`). + +## 1.4 Warum die aktuelle Implementierung korrekt ist + +Im sichtbaren Scope ist die beobachtbare Vertragsgrenze das an `JsonEventSink::on_number(std::string_view)` weitergereichte Rohzahllexem. Genau an dieser Grenze arbeitet die aktuelle Implementierung: primitive Zahlenevents werden ueber den Rohscan materialisiert, numerische Stringevents werden bevorzugt ueber `advanceExactNumber(...)` synchronisiert und sonst ebenfalls ueber den Rohscan abgesichert (`src/request_body_processor/json_backend_jsoncons.cc:622-705`). + +Der lokale Rohscan bildet die JSON-Zahlsyntax im sichtbaren Code konkret ab. Der Scanner behandelt negatives Vorzeichen, Nachkommateil, Exponent, Exponent-Vorzeichen, Leerraum sowie die in Arrays und Objekten sichtbaren Trenner (`src/request_body_processor/json_backend_jsoncons.cc:298-315`, `src/request_body_processor/json_backend_jsoncons.cc:425-486`, `src/request_body_processor/json_backend_jsoncons.cc:523-539`). + +Die neuen Unit-Tests pruefen genau diese beobachtbare Eigenschaft ohne Normalisierung: `collectNumberLexemes(...)` parst ueber `JSONAdapter::parse(...)`, sammelt jede `on_number(...)`-Nutzlast als String und vergleicht Root-Scalar-Faelle sowie einen Objekt/Array-Fall mit Whitespace und Trennern exakt gegen die erwarteten Lexeme (`test/unit/json_backend_depth_tests.cc:149-316`). + +Die zusaetzlichen Regressionsfaelle im JSON-Testfile sichern denselben Vertrag noch einmal End-to-End ueber `ARGS:json` und den Debug-Log ab, jeweils mit exakter Stringerwartung fuer das urspruengliche Zahllexem (`test/test-cases/regression/request-body-parser-json-backend-edgecases.json:47-360`). + +Diese Bewertung behauptet nicht, dass der Pfad performance-optimal ist. Sie beschreibt, dass die aktuelle Implementierung im gegebenen Scope das rohe Zahllexem funktional korrekt weiterreicht und deshalb als abgeschlossen bewertet werden kann. + +## 1.5 Warum keine backend-only Entfernung des Scans moeglich ist + +Die sichtbare `jsoncons`-Dokumentation beschreibt `basic_json_cursor::context()` als Rueckgabe des aktuellen `ser_context` (`others/jsoncons/doc/ref/corelib/basic_json_cursor.md:117-119`). In der vendorten Implementierung gibt `basic_json_cursor::context()` tatsaechlich `*this` zurueck (`others/jsoncons/include/jsoncons/json_cursor.hpp:405-407`). + +Im selben Cursorcode sind nur `line()` und `column()` ueberschrieben (`others/jsoncons/include/jsoncons/json_cursor.hpp:450-457`). Die Basisklasse `ser_context` liefert fuer `begin_position()` und `end_position()` dagegen standardmaessig `0` (`others/jsoncons/include/jsoncons/ser_utils.hpp:18-46`). + +Die vendorte Dokumentation sagt zu `ser_context`, dass `begin_position()` und `end_position()` derzeit nur fuer den JSON-Parser unterstuetzt werden (`others/jsoncons/doc/ref/corelib/ser_context.md:20-33`). Der Parser selbst besitzt diese Positionsdaten auch intern (`others/jsoncons/include/jsoncons/json_parser.hpp:1096-1126`, `others/jsoncons/include/jsoncons/json_parser.hpp:2380-2392`), aber im sichtbaren Backend-Code wird mit `cursor.context()` gearbeitet, nicht mit dem Parserobjekt selbst (`src/request_body_processor/json_backend_jsoncons.cc:758-760`). + +Damit ist ein backend-only Fast Path ueber den oeffentlichen Cursor-Kontext in dieser Repository-Version nicht belastbar belegt. Genau deshalb bleibt der bestehende Zahlenscan im aktuellen Scope funktional notwendig. + +## 1.6 Testabdeckung + +Die ergaenzten Tests in `test/unit/json_backend_depth_tests.cc` fuegen einen kleinen `NumberCollectingSink` hinzu, der nur `on_number(std::string_view)` sammelt, und einen Helper, der `JSONAdapter::parse(...)` ueber beliebigen Input ausfuehrt (`test/unit/json_backend_depth_tests.cc:70-186`). + +Die Root-Scalar-Regressionsfaelle pruefen unveraenderte Rohlexeme fuer `0`, `-0`, `1.0`, `1e3`, `-1.25e-4`, `18446744073709551615`, `18446744073709551616` und `123456789012345678901234567890` (`test/unit/json_backend_depth_tests.cc:229-253`). + +Ein weiterer Test prueft dieselben Lexemtypen in einem gemischten Objekt/Array mit Leerraum und Trennern und vergleicht die gesamte `on_number(...)`-Sequenz exakt (`test/unit/json_backend_depth_tests.cc:256-275`). + +Das bestehende Regressionsfile wurde nur um die bislang fehlenden Root-Scalar-Faelle `0`, `-1.25e-4`, `18446744073709551615` und `18446744073709551616` ergaenzt. Bereits vorhandene Faelle wie `1.0`, `1e3`, `-0` und `123456789012345678901234567890` blieben unveraendert (`test/test-cases/regression/request-body-parser-json-backend-edgecases.json:47-360`, `test/test-cases/regression/request-body-parser-json-backend-edgecases.json:362-405`). + +Die Tests behaupten bewusst nicht, dass interne `jsoncons`-Positionsdaten korrekt nach aussen propagiert werden. Sie sichern das beobachtbare Backend-Verhalten am `on_number(...)`-Rand und ueber den bestehenden ModSecurity-Regressionspfad ab. + +## 1.7 Fazit + +Die aktuelle `jsoncons`-Implementierung ist in diesem Repository-Stand im gegebenen Scope funktional korrekt und abgeschlossen. Der zusaetzliche Zahlenscan ist sichtbar vorhanden und bleibt eine bekannte Performance-Kostenstelle, ist im aktuell erlaubten backend-only Rahmen aber weiterhin die massgebliche und notwendige Quelle fuer das Rohzahllexem. + +Die neuen Tests liefern dafuer gezielten Regression-Schutz, ohne Third-Party-Code zu aendern oder unbelegte Aussagen ueber nicht sichtbare Schnittstellen zu treffen. + +# 2. English + +## 2.1 Purpose + +This document records the current number-token path of the `jsoncons` backend in this repository revision and the regression tests that were added around it. It is intentionally limited to what is directly supported by the repository code and the vendored `jsoncons` documentation. + +## 2.2 Summary + +The current implementation is functionally correct and complete within the given scope, even though the additional numeric scan remains a known performance cost. + +In the current code, numeric events are handled by `emitEvent(...)` together with an additional `RawJsonTokenCursor` that reconstructs raw numeric tokens from the original input (`src/request_body_processor/json_backend_jsoncons.cc:242-252`, `src/request_body_processor/json_backend_jsoncons.cc:523-539`, `src/request_body_processor/json_backend_jsoncons.cc:577-705`). + +A backend-only removal of that scan is not currently supported by the visible scope, because the public cursor context exposed by the vendored `jsoncons` version does not provide usable `begin_position()` and `end_position()` values here (`others/jsoncons/include/jsoncons/json_cursor.hpp:405-457`, `others/jsoncons/include/jsoncons/ser_utils.hpp:18-46`). + +As regression protection, exact lexeme comparisons were added at the `JsonEventSink::on_number(std::string_view)` boundary together with additional end-to-end regression cases for the missing root-scalar numeric inputs (`test/unit/json_backend_depth_tests.cc:149-316`, `test/test-cases/regression/request-body-parser-json-backend-edgecases.json:47-360`). + +## 2.3 Current implementation + +`JSONAdapter::parse(...)` is the shared entry point and dispatches to `parseDocumentWithJsoncons(...)` when ModSecurity is built with `MSC_JSON_BACKEND_JSONCONS` (`src/request_body_processor/json_adapter.cc:59-78`). + +`parseDocumentWithJsoncons(...)` configures `jsoncons::json_options` with `max_nesting_depth`, `lossless_number(true)`, and `lossless_bignum(true)`, creates a `jsoncons::json_string_cursor` on the input, and also creates a `RawJsonTokenCursor` over the same input text (`src/request_body_processor/json_backend_jsoncons.cc:716-760`). + +The additional raw scan is implemented in the local `RawJsonTokenCursor`. `consumeNextNumberToken(...)` first locates the next numeric token with `skipToNextNumberToken(...)` and then reads the token with `consumeNumberAt(...)` (`src/request_body_processor/json_backend_jsoncons.cc:242-252`, `src/request_body_processor/json_backend_jsoncons.cc:425-486`, `src/request_body_processor/json_backend_jsoncons.cc:523-539`). + +`consumeNumberAt(...)` explicitly handles sign, integer part, fraction, exponent, and exponent sign (`src/request_body_processor/json_backend_jsoncons.cc:429-486`). `skipInsignificantAt(...)` skips whitespace, commas, and colons, while `isNumberBoundary(...)` treats whitespace together with `,`, `]`, and `}` as numeric boundaries (`src/request_body_processor/json_backend_jsoncons.cc:298-315`). + +There are two relevant numeric event branches. + +- For `string_value` events recognized as numeric string events, the code first attempts `advanceExactNumber(decoded_number, ...)`. If that succeeds, the decoded string is sent directly to `on_number(...)`. If it does not, the code falls back to `consumeNextNumberToken(...)` and `rawNumberFromContext(...)` (`src/request_body_processor/json_backend_jsoncons.cc:622-658`). +- For `int64_value`, `uint64_value`, `double_value`, and `half_value`, the code always calls `consumeNextNumberToken(...)` first, then materializes the token through `rawNumberFromContext(...)`, and finally passes it to `on_number(...)` (`src/request_body_processor/json_backend_jsoncons.cc:684-705`). + +`rawNumberFromContext(...)` follows a fixed order. It first attempts to slice a candidate directly from the original input using `context.begin_position()` and `context.end_position()`. If that candidate is not usable, it falls back to the already scanned token. For numeric string events it can finally use the decoded event string, provided that string is itself a valid JSON number lexeme (`src/request_body_processor/json_backend_jsoncons.cc:545-575`). + +The enabled `jsoncons` options change the event shapes delivered by the parser. The vendored documentation states that `lossless_number(true)` reads numbers with fractional parts or exponents as strings tagged `semantic_tag::bigdec`, and that `lossless_bignum(true)` preserves out-of-range integers as strings tagged `semantic_tag::bigint` and out-of-range floating-point values as `bigdec` (`others/jsoncons/doc/ref/corelib/basic_json_options.md:25-29`). + +The parser implementation matches that documentation. On integer overflow it emits `string_value(..., semantic_tag::bigint, ...)`, and when `lossless_number_` is enabled it emits `string_value(..., semantic_tag::bigdec, ...)` for numbers with fractions or exponents (`others/jsoncons/include/jsoncons/json_parser.hpp:2458-2554`). + +The parser also maintains internal position data. It sets `begin_position_` when it first sees `-`, `0`, or `1` through `9`, `parse_number(...)` handles integer, fraction, and exponent states, and the parser class overrides `begin_position()` and `end_position()` (`others/jsoncons/include/jsoncons/json_parser.hpp:1096-1126`, `others/jsoncons/include/jsoncons/json_parser.hpp:1720-1940`, `others/jsoncons/include/jsoncons/json_parser.hpp:2380-2392`). + +## 2.4 Why the current implementation is correct + +Within the visible scope, the relevant contract boundary is the raw numeric lexeme passed into `JsonEventSink::on_number(std::string_view)`. That is exactly what the current implementation preserves: primitive numeric events are materialized through the raw scan, and numeric string events are first synchronized through `advanceExactNumber(...)` when possible and otherwise protected by the same raw scan path (`src/request_body_processor/json_backend_jsoncons.cc:622-705`). + +The local raw scanner explicitly models the JSON number syntax visible in this repository. It covers negative signs, fractions, exponents, exponent signs, whitespace, and the delimiters used inside arrays and objects (`src/request_body_processor/json_backend_jsoncons.cc:298-315`, `src/request_body_processor/json_backend_jsoncons.cc:425-486`, `src/request_body_processor/json_backend_jsoncons.cc:523-539`). + +The added unit tests validate that exact observable behavior without normalization. `collectNumberLexemes(...)` parses through `JSONAdapter::parse(...)`, captures every `on_number(...)` payload as a string, and compares both root-scalar cases and a mixed object/array input with whitespace and delimiters against the exact expected lexemes (`test/unit/json_backend_depth_tests.cc:149-316`). + +The added regression cases in the JSON test file check the same contract end-to-end through `ARGS:json` and the debug log, again with exact string expectations for the original numeric lexemes (`test/test-cases/regression/request-body-parser-json-backend-edgecases.json:47-360`). + +This assessment does not claim that the path is performance-optimal. It documents that, within the current scope, the implementation functionally preserves the raw numeric lexeme and can therefore be treated as complete for this repository state. + +## 2.5 Why backend-only removal is not currently supported + +The visible `jsoncons` documentation describes `basic_json_cursor::context()` as returning the current `ser_context` (`others/jsoncons/doc/ref/corelib/basic_json_cursor.md:117-119`). In the vendored implementation, `basic_json_cursor::context()` does in fact return `*this` (`others/jsoncons/include/jsoncons/json_cursor.hpp:405-407`). + +In that same cursor implementation, only `line()` and `column()` are overridden (`others/jsoncons/include/jsoncons/json_cursor.hpp:450-457`). The base `ser_context` implementation returns `0` for `begin_position()` and `end_position()` (`others/jsoncons/include/jsoncons/ser_utils.hpp:18-46`). + +The vendored `ser_context` documentation says that `begin_position()` and `end_position()` are currently only supported for the JSON parser (`others/jsoncons/doc/ref/corelib/ser_context.md:20-33`). The parser itself does have those positions internally (`others/jsoncons/include/jsoncons/json_parser.hpp:1096-1126`, `others/jsoncons/include/jsoncons/json_parser.hpp:2380-2392`), but the visible backend code operates through `cursor.context()`, not through the parser object directly (`src/request_body_processor/json_backend_jsoncons.cc:758-760`). + +For that reason, a backend-only fast path based on the public cursor context is not supported by the currently visible code. The existing numeric scan therefore remains the authoritative and necessary source of the raw numeric lexeme in the present scope. + +## 2.6 Test coverage + +The additions in `test/unit/json_backend_depth_tests.cc` introduce a small `NumberCollectingSink` that only records `on_number(std::string_view)` and a helper that executes `JSONAdapter::parse(...)` on arbitrary input (`test/unit/json_backend_depth_tests.cc:70-186`). + +The root-scalar regression cases verify unchanged raw lexemes for `0`, `-0`, `1.0`, `1e3`, `-1.25e-4`, `18446744073709551615`, `18446744073709551616`, and `123456789012345678901234567890` (`test/unit/json_backend_depth_tests.cc:229-253`). + +An additional test validates the same lexeme classes inside a mixed object/array input with whitespace and delimiters and compares the full `on_number(...)` sequence exactly (`test/unit/json_backend_depth_tests.cc:256-275`). + +The existing regression file was extended only with the previously missing root-scalar cases `0`, `-1.25e-4`, `18446744073709551615`, and `18446744073709551616`. Existing cases such as `1.0`, `1e3`, `-0`, and `123456789012345678901234567890` were left in place (`test/test-cases/regression/request-body-parser-json-backend-edgecases.json:47-360`, `test/test-cases/regression/request-body-parser-json-backend-edgecases.json:362-405`). + +The tests intentionally do not claim that internal `jsoncons` position data is propagated outward correctly. They protect the observable backend behavior at the `on_number(...)` boundary and through the established ModSecurity regression path. + +## 2.7 Conclusion + +In this repository state, the current `jsoncons` implementation is functionally correct and complete within the given scope. The additional numeric scan is visibly present and remains a known performance cost, but within the currently allowed backend-only scope it is still the decisive and necessary source for the raw numeric lexeme. + +The added tests provide focused regression protection for that behavior without modifying third-party code or asserting capabilities that are not directly supported by the visible interfaces. diff --git a/src/actions/transformations/css_decode.cc b/src/actions/transformations/css_decode.cc index 41da9390ea..d999813d87 100644 --- a/src/actions/transformations/css_decode.cc +++ b/src/actions/transformations/css_decode.cc @@ -15,6 +15,8 @@ #include "css_decode.h" +#include + #include "src/utils/string.h" using namespace modsecurity::utils::string; @@ -138,7 +140,17 @@ static inline bool css_decode_inplace(std::string &val) { /* The character after backslash is not a hexadecimal digit, * nor a newline. */ /* Use one character after backslash as is. */ - *d++ = input[i++]; + const auto escaped = input[i++]; + *d++ = escaped; + + /* + * Preserve legacy behaviour for escaped NUL by consuming + * one trailing whitespace character. + */ + if ((escaped == '\0') && (i < input_len) + && std::isspace(input[i])) { + i++; + } } } else { /* No characters after backslash. */ diff --git a/src/operators/validate_byte_range.cc b/src/operators/validate_byte_range.cc index 602c453ea9..9ad4d2921c 100644 --- a/src/operators/validate_byte_range.cc +++ b/src/operators/validate_byte_range.cc @@ -145,11 +145,15 @@ bool ValidateByteRange::init(const std::string &file, while (true) { const std::string::size_type nextPos = m_param.find(',', pos); - const std::string token = nextPos == std::string::npos - ? m_param.substr(pos) - : m_param.substr(pos, nextPos - pos); - - if (getRange(token, &parsedTable, error) == false) { + if (const std::string token = nextPos == std::string::npos + ? m_param.substr(pos) + : m_param.substr(pos, nextPos - pos); + getRange(token, &parsedTable, error) == false) { + /* + * Keep byte 0 allowed on invalid parameters so callers that + * continue after init() failure keep legacy behaviour. + */ + table[0] = table[0] | 1U; return false; } diff --git a/src/request_body_processor/json.cc b/src/request_body_processor/json.cc index 798eb23935..f345276827 100644 --- a/src/request_body_processor/json.cc +++ b/src/request_body_processor/json.cc @@ -27,8 +27,7 @@ #include "src/request_body_processor/json_instrumentation.h" -namespace modsecurity { -namespace RequestBodyProcessor { +namespace modsecurity::RequestBodyProcessor { static const double json_depth_limit_default = 10000.0; static const char* json_depth_limit_exceeded_msg = ". Parsing depth limit exceeded"; @@ -126,10 +125,8 @@ bool JSON::complete(std::string *err) { } JSONAdapter adapter; - JsonParseResult result = adapter.parse(m_data, - static_cast(this)); - - if (!result.ok()) { + if (JsonParseResult result = adapter.parse(m_data, + static_cast(this)); !result.ok()) { if (result.sink_status == JsonSinkStatus::DepthLimitExceeded) { m_depth_limit_exceeded = true; } @@ -285,5 +282,4 @@ void JSON::clearContainers() { } } -} // namespace RequestBodyProcessor -} // namespace modsecurity +} // namespace modsecurity::RequestBodyProcessor diff --git a/src/request_body_processor/json.h b/src/request_body_processor/json.h index 53af13c4a8..a03f33c83d 100644 --- a/src/request_body_processor/json.h +++ b/src/request_body_processor/json.h @@ -24,8 +24,7 @@ #include "src/request_body_processor/json_backend.h" -namespace modsecurity { -namespace RequestBodyProcessor { +namespace modsecurity::RequestBodyProcessor { class JSONContainer { @@ -114,7 +113,6 @@ class JSON : public JsonEventSink { }; -} // namespace RequestBodyProcessor -} // namespace modsecurity +} // namespace modsecurity::RequestBodyProcessor #endif // SRC_REQUEST_BODY_PROCESSOR_JSON_H_ diff --git a/src/request_body_processor/json_adapter.cc b/src/request_body_processor/json_adapter.cc index e777a76542..32d321f4be 100644 --- a/src/request_body_processor/json_adapter.cc +++ b/src/request_body_processor/json_adapter.cc @@ -19,8 +19,7 @@ #include "src/config.h" -namespace modsecurity { -namespace RequestBodyProcessor { +namespace modsecurity::RequestBodyProcessor { namespace { JsonParseResult makeResult(JsonParseStatus parse_status, @@ -56,6 +55,28 @@ JsonParseResult normalizeResult(JsonParseResult result) { } // namespace +JsonParseResult JSONAdapter::parse(std::string &input, + JsonEventSink *sink, const JsonBackendParseOptions &options) const { + if (sink == nullptr) { + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::InternalError, "JSON event sink is null."); + } + + if (input.empty()) { + return makeResult(JsonParseStatus::Ok); + } + +#if defined(MSC_JSON_BACKEND_SIMDJSON) + return normalizeResult(parseDocumentWithSimdjson(input, sink, options)); +#elif defined(MSC_JSON_BACKEND_JSONCONS) + return normalizeResult(parseDocumentWithJsoncons(input, sink, options)); +#else + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::InternalError, + "ModSecurity was built without a selected JSON backend."); +#endif +} + JsonParseResult JSONAdapter::parse(const std::string &input, JsonEventSink *sink, const JsonBackendParseOptions &options) const { if (sink == nullptr) { @@ -78,5 +99,4 @@ JsonParseResult JSONAdapter::parse(const std::string &input, #endif } -} // namespace RequestBodyProcessor -} // namespace modsecurity +} // namespace modsecurity::RequestBodyProcessor diff --git a/src/request_body_processor/json_adapter.h b/src/request_body_processor/json_adapter.h index 730d9af7d2..a260eb629b 100644 --- a/src/request_body_processor/json_adapter.h +++ b/src/request_body_processor/json_adapter.h @@ -20,16 +20,17 @@ #include "src/request_body_processor/json_backend.h" -namespace modsecurity { -namespace RequestBodyProcessor { +namespace modsecurity::RequestBodyProcessor { class JSONAdapter { public: + JsonParseResult parse(std::string &input, JsonEventSink *sink, + const JsonBackendParseOptions &options = JsonBackendParseOptions()) const; + JsonParseResult parse(const std::string &input, JsonEventSink *sink, const JsonBackendParseOptions &options = JsonBackendParseOptions()) const; }; -} // namespace RequestBodyProcessor -} // namespace modsecurity +} // namespace modsecurity::RequestBodyProcessor #endif // SRC_REQUEST_BODY_PROCESSOR_JSON_ADAPTER_H_ diff --git a/src/request_body_processor/json_backend.h b/src/request_body_processor/json_backend.h index 30407d5494..ffad7b47fe 100644 --- a/src/request_body_processor/json_backend.h +++ b/src/request_body_processor/json_backend.h @@ -19,8 +19,7 @@ #include #include -namespace modsecurity { -namespace RequestBodyProcessor { +namespace modsecurity::RequestBodyProcessor { enum class JsonParseStatus { Ok, @@ -71,10 +70,12 @@ class JsonEventSink { JsonParseResult parseDocumentWithSimdjson(const std::string &input, JsonEventSink *sink, const JsonBackendParseOptions &options); +JsonParseResult parseDocumentWithSimdjson(std::string &input, + JsonEventSink *sink, const JsonBackendParseOptions &options); + JsonParseResult parseDocumentWithJsoncons(const std::string &input, JsonEventSink *sink, const JsonBackendParseOptions &options); -} // namespace RequestBodyProcessor -} // namespace modsecurity +} // namespace modsecurity::RequestBodyProcessor #endif // SRC_REQUEST_BODY_PROCESSOR_JSON_BACKEND_H_ diff --git a/src/request_body_processor/json_backend_jsoncons.cc b/src/request_body_processor/json_backend_jsoncons.cc index 3d007a5f7d..44399d4c22 100644 --- a/src/request_body_processor/json_backend_jsoncons.cc +++ b/src/request_body_processor/json_backend_jsoncons.cc @@ -33,8 +33,7 @@ #include #include -namespace modsecurity { -namespace RequestBodyProcessor { +namespace modsecurity::RequestBodyProcessor { namespace { JsonParseResult makeResult(JsonParseStatus parse_status, @@ -85,6 +84,8 @@ JsonParseResult fromJsonconsError(const std::error_code &error, return makeResult(JsonParseStatus::TruncatedInput, JsonSinkStatus::Continue, detail); case jsoncons::json_errc::max_nesting_depth_exceeded: + return makeResult(JsonParseStatus::ParseError, + JsonSinkStatus::Continue, detail); case jsoncons::json_errc::source_error: return makeResult(JsonParseStatus::InternalError, JsonSinkStatus::Continue, detail); @@ -237,6 +238,53 @@ class RawJsonTokenCursor { return false; } + bool consumeNextNumberToken(std::string_view *raw_token, + std::string *detail) { + std::size_t probe_offset = m_offset; + if (!skipToNextNumberToken(&probe_offset, detail)) { + return false; + } + if (!consumeNumberAt(&probe_offset, raw_token, detail)) { + return false; + } + m_offset = probe_offset; + return true; + } + + bool advanceExactNumber(std::string_view exact_number, std::string *detail) { + if (!isValidJsonNumber(exact_number)) { + if (detail != nullptr) { + *detail = "Unable to advance raw JSON number cursor using a non-numeric token."; + } + return false; + } + + std::size_t probe_offset = m_offset; + if (!skipToNextNumberToken(&probe_offset, detail)) { + return false; + } + if (probe_offset + exact_number.size() > m_input.size() + || m_input.compare(probe_offset, exact_number.size(), exact_number) + != 0) { + if (detail != nullptr) { + *detail = "Exact raw JSON number token did not match jsoncons numeric lexeme."; + } + return false; + } + + const std::size_t next_offset = probe_offset + exact_number.size(); + if (next_offset < m_input.size() + && !isNumberBoundary(m_input[next_offset])) { + if (detail != nullptr) { + *detail = "Exact raw JSON number token was followed by additional numeric characters."; + } + return false; + } + + m_offset = next_offset; + return true; + } + private: static bool isWhitespace(char value) { return std::isspace(static_cast(value)) != 0; @@ -246,11 +294,19 @@ class RawJsonTokenCursor { return std::isxdigit(static_cast(value)) != 0; } + static bool isNumberBoundary(char value) { + return isWhitespace(value) || value == ',' || value == ']' || value == '}'; + } + void skipInsignificant() { - while (m_offset < m_input.size()) { - char current = m_input[m_offset]; - if (isWhitespace(current) || current == ',' || current == ':') { - m_offset++; + skipInsignificantAt(&m_offset); + } + + void skipInsignificantAt(std::size_t *offset) const { + while (*offset < m_input.size()) { + if (char current = m_input[*offset]; + isWhitespace(current) || current == ',' || current == ':') { + (*offset)++; continue; } break; @@ -259,7 +315,12 @@ class RawJsonTokenCursor { bool consumeChar(char expected, std::string_view *raw_token, std::string *detail) { - if (m_offset >= m_input.size() || m_input[m_offset] != expected) { + return consumeCharAt(&m_offset, expected, raw_token, detail); + } + + bool consumeCharAt(std::size_t *offset, char expected, + std::string_view *raw_token, std::string *detail) const { + if (*offset >= m_input.size() || m_input[*offset] != expected) { if (detail != nullptr) { *detail = std::string("Expected raw JSON token '") + expected + "' while synchronizing jsoncons events."; @@ -267,16 +328,21 @@ class RawJsonTokenCursor { return false; } - *raw_token = std::string_view(m_input.data() + m_offset, 1); - m_offset++; + *raw_token = std::string_view(m_input.data() + *offset, 1); + (*offset)++; return true; } bool consumeLiteral(const char *literal, std::string_view *raw_token, std::string *detail) { + return consumeLiteralAt(&m_offset, literal, raw_token, detail); + } + + bool consumeLiteralAt(std::size_t *offset, const char *literal, + std::string_view *raw_token, std::string *detail) const { const std::size_t length = std::char_traits::length(literal); - if (m_offset + length > m_input.size() - || m_input.compare(m_offset, length, literal) != 0) { + if (*offset + length > m_input.size() + || m_input.compare(*offset, length, literal) != 0) { if (detail != nullptr) { *detail = std::string("Expected raw JSON literal '") + literal + "' while synchronizing jsoncons events."; @@ -284,43 +350,47 @@ class RawJsonTokenCursor { return false; } - *raw_token = std::string_view(m_input.data() + m_offset, length); - m_offset += length; + *raw_token = std::string_view(m_input.data() + *offset, length); + *offset += length; return true; } bool consumeString(std::string_view *raw_token, std::string *detail) { - const std::size_t start = m_offset; + return consumeStringAt(&m_offset, raw_token, detail); + } - if (m_offset >= m_input.size() || m_input[m_offset] != '"') { + bool consumeStringAt(std::size_t *offset, std::string_view *raw_token, + std::string *detail) const { + const std::size_t start = *offset; + + if (*offset >= m_input.size() || m_input[*offset] != '"') { if (detail != nullptr) { *detail = "Expected raw JSON string token while synchronizing jsoncons events."; } return false; } - m_offset++; - while (m_offset < m_input.size()) { - char current = m_input[m_offset++]; + (*offset)++; + while (*offset < m_input.size()) { + char current = m_input[(*offset)++]; if (current == '\\') { - if (m_offset >= m_input.size()) { + if (*offset >= m_input.size()) { if (detail != nullptr) { *detail = "Truncated escape sequence while synchronizing raw JSON string token."; } return false; } - char escaped = m_input[m_offset++]; - if (escaped == 'u') { + if (char escaped = m_input[(*offset)++]; escaped == 'u') { for (int i = 0; i < 4; i++) { - if (m_offset >= m_input.size() - || !isHexDigit(m_input[m_offset])) { + if (*offset >= m_input.size() + || !isHexDigit(m_input[*offset])) { if (detail != nullptr) { *detail = "Invalid Unicode escape while synchronizing raw JSON string token."; } return false; } - m_offset++; + (*offset)++; } } continue; @@ -328,7 +398,7 @@ class RawJsonTokenCursor { if (current == '"') { *raw_token = std::string_view(m_input.data() + start, - m_offset - start); + *offset - start); return true; } @@ -347,108 +417,158 @@ class RawJsonTokenCursor { } bool consumeNumber(std::string_view *raw_token, std::string *detail) { - const std::size_t start = m_offset; + return consumeNumberAt(&m_offset, raw_token, detail); + } + + bool consumeNumberAt(std::size_t *offset, std::string_view *raw_token, + std::string *detail) const { + const std::size_t start = *offset; - if (m_offset < m_input.size() && m_input[m_offset] == '-') { - m_offset++; + if (*offset < m_input.size() && m_input[*offset] == '-') { + (*offset)++; } - if (m_offset >= m_input.size()) { + if (*offset >= m_input.size()) { if (detail != nullptr) { *detail = "Unexpected end of input while synchronizing raw JSON number token."; } return false; } - if (m_input[m_offset] == '0') { - m_offset++; + if (m_input[*offset] == '0') { + (*offset)++; } else { - if (!isDigit(m_input[m_offset]) || m_input[m_offset] == '0') { + if (!isDigit(m_input[*offset]) || m_input[*offset] == '0') { if (detail != nullptr) { *detail = "Invalid integer component while synchronizing raw JSON number token."; } return false; } - while (m_offset < m_input.size() && isDigit(m_input[m_offset])) { - m_offset++; + while (*offset < m_input.size() && isDigit(m_input[*offset])) { + (*offset)++; } } - if (m_offset < m_input.size() && m_input[m_offset] == '.') { - m_offset++; - if (m_offset >= m_input.size() || !isDigit(m_input[m_offset])) { + if (*offset < m_input.size() && m_input[*offset] == '.') { + (*offset)++; + if (*offset >= m_input.size() || !isDigit(m_input[*offset])) { if (detail != nullptr) { *detail = "Invalid fraction component while synchronizing raw JSON number token."; } return false; } - while (m_offset < m_input.size() && isDigit(m_input[m_offset])) { - m_offset++; + while (*offset < m_input.size() && isDigit(m_input[*offset])) { + (*offset)++; } } - if (m_offset < m_input.size() - && (m_input[m_offset] == 'e' || m_input[m_offset] == 'E')) { - m_offset++; - if (m_offset < m_input.size() - && (m_input[m_offset] == '+' || m_input[m_offset] == '-')) { - m_offset++; + if (*offset < m_input.size() + && (m_input[*offset] == 'e' || m_input[*offset] == 'E')) { + (*offset)++; + if (*offset < m_input.size() + && (m_input[*offset] == '+' || m_input[*offset] == '-')) { + (*offset)++; } - if (m_offset >= m_input.size() || !isDigit(m_input[m_offset])) { + if (*offset >= m_input.size() || !isDigit(m_input[*offset])) { if (detail != nullptr) { *detail = "Invalid exponent component while synchronizing raw JSON number token."; } return false; } - while (m_offset < m_input.size() && isDigit(m_input[m_offset])) { - m_offset++; + while (*offset < m_input.size() && isDigit(m_input[*offset])) { + (*offset)++; } } - *raw_token = std::string_view(m_input.data() + start, m_offset - start); + *raw_token = std::string_view(m_input.data() + start, *offset - start); return true; } + bool skipTokenAt(std::size_t *offset, std::string *detail) const { + std::string_view ignored; + if (*offset >= m_input.size()) { + if (detail != nullptr) { + *detail = "Unexpected end of input while searching for a raw JSON number token."; + } + return false; + } + + switch (m_input[*offset]) { + case '{': + return consumeCharAt(offset, '{', &ignored, detail); + case '}': + return consumeCharAt(offset, '}', &ignored, detail); + case '[': + return consumeCharAt(offset, '[', &ignored, detail); + case ']': + return consumeCharAt(offset, ']', &ignored, detail); + case '"': + return consumeStringAt(offset, &ignored, detail); + case 't': + return consumeLiteralAt(offset, "true", &ignored, detail); + case 'f': + return consumeLiteralAt(offset, "false", &ignored, detail); + case 'n': + return consumeLiteralAt(offset, "null", &ignored, detail); + default: + if (detail != nullptr) { + *detail = "Unable to locate the next raw JSON number token while synchronizing jsoncons events."; + } + return false; + } + } + + bool skipToNextNumberToken(std::size_t *offset, std::string *detail) const { + while (true) { + skipInsignificantAt(offset); + if (*offset >= m_input.size()) { + if (detail != nullptr) { + *detail = "Unexpected end of input while searching for a raw JSON number token."; + } + return false; + } + if (m_input[*offset] == '-' || isDigit(m_input[*offset])) { + return true; + } + if (!skipTokenAt(offset, detail)) { + return false; + } + } + } + const std::string &m_input; std::size_t m_offset{0}; }; -std::string rawNumberFromContext(const std::string &input, +std::string_view rawNumberFromContext(const std::string &input, jsoncons::staj_event_type event_type, const jsoncons::ser_context &context, const jsoncons::staj_event &event, std::string_view scanned_token) { const std::size_t begin = context.begin_position(); - const std::size_t end = context.end_position(); - - if (begin < end && end <= input.size()) { + if (const std::size_t end = context.end_position(); + begin < end && end <= input.size()) { std::string_view candidate(input.data() + begin, end - begin); if (tokenMatchesNumericEvent(event_type, candidate)) { - return std::string(candidate); + return candidate; } } if (tokenMatchesNumericEvent(event_type, scanned_token)) { - return std::string(scanned_token); + return scanned_token; } if (isNumericStringEvent(event)) { std::error_code error; jsoncons::string_view decoded = event.get(error); if (error) { - return ""; + return std::string_view(); } if (isValidJsonNumber(std::string_view(decoded.data(), decoded.size()))) { - return std::string(decoded.data(), decoded.size()); + return std::string_view(decoded.data(), decoded.size()); } - return ""; - } - - std::error_code error; - std::string fallback = event.get(error); - if (error) { - return ""; + return std::string_view(); } - return fallback; + return std::string_view(); } JsonParseResult emitEvent(const std::string &input, JsonEventSink *sink, @@ -459,12 +579,6 @@ JsonParseResult emitEvent(const std::string &input, JsonEventSink *sink, std::string_view raw_token; std::string sync_detail; - if (!token_cursor->consume(event, &raw_token, &sync_detail)) { - return makeResult(JsonParseStatus::InternalError, - JsonSinkStatus::Continue, sync_detail); - } - recordJsonconsTokenSyncStep(); - switch (event.event_type()) { case jsoncons::staj_event_type::begin_object: sink_status = sink->on_start_object(); @@ -508,7 +622,24 @@ JsonParseResult emitEvent(const std::string &input, JsonEventSink *sink, return fromJsonconsError(error, context); } if (isNumericStringEvent(event)) { - std::string raw_number = rawNumberFromContext(input, + if (const std::string_view decoded_number(decoded.data(), + decoded.size()); isValidJsonNumber(decoded_number) + && token_cursor->advanceExactNumber(decoded_number, + &sync_detail)) { + recordJsonconsTokenExactAdvanceStep(); + sink_status = sink->on_number(decoded_number); + if (sink_status != JsonSinkStatus::Continue) { + return stopTraversal(sink_status, "handling a number"); + } + return makeResult(JsonParseStatus::Ok); + } + if (!token_cursor->consumeNextNumberToken(&raw_token, + &sync_detail)) { + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::Continue, sync_detail); + } + recordJsonconsTokenSyncStep(); + std::string_view raw_number = rawNumberFromContext(input, jsoncons::staj_event_type::double_value, context, event, raw_token); if (raw_number.empty()) { @@ -551,7 +682,13 @@ JsonParseResult emitEvent(const std::string &input, JsonEventSink *sink, case jsoncons::staj_event_type::uint64_value: case jsoncons::staj_event_type::double_value: case jsoncons::staj_event_type::half_value: { - std::string raw_number = rawNumberFromContext(input, + if (!token_cursor->consumeNextNumberToken(&raw_token, + &sync_detail)) { + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::Continue, sync_detail); + } + recordJsonconsTokenSyncStep(); + std::string_view raw_number = rawNumberFromContext(input, event.event_type(), context, event, raw_token); if (raw_number.empty()) { return makeResult(JsonParseStatus::InternalError, @@ -616,9 +753,8 @@ JsonParseResult parseDocumentWithJsoncons(const std::string &input, #endif while (!cursor.done()) { - JsonParseResult result = emitEvent(input, sink, &token_cursor, - cursor.current(), cursor.context()); - if (!result.ok()) { + if (JsonParseResult result = emitEvent(input, sink, &token_cursor, + cursor.current(), cursor.context()); !result.ok()) { #ifdef MSC_JSON_AUDIT_INSTRUMENTATION record_event_loop(); #endif @@ -648,5 +784,4 @@ JsonParseResult parseDocumentWithJsoncons(const std::string &input, return makeResult(JsonParseStatus::Ok); } -} // namespace RequestBodyProcessor -} // namespace modsecurity +} // namespace modsecurity::RequestBodyProcessor diff --git a/src/request_body_processor/json_backend_simdjson.cc b/src/request_body_processor/json_backend_simdjson.cc index 5fe6ed06dd..5e20e3b5ee 100644 --- a/src/request_body_processor/json_backend_simdjson.cc +++ b/src/request_body_processor/json_backend_simdjson.cc @@ -19,16 +19,17 @@ #include "src/request_body_processor/json_backend.h" +#include #include #include +#include #include #include #include "src/request_body_processor/json_instrumentation.h" #include "simdjson.h" -namespace modsecurity { -namespace RequestBodyProcessor { +namespace modsecurity::RequestBodyProcessor { namespace { JsonParseResult makeResult(JsonParseStatus parse_status, @@ -87,6 +88,85 @@ JsonParseResult fromSimdjsonError(simdjson::error_code error) { } } +std::size_t effectiveTechnicalMaxDepth( + const JsonBackendParseOptions &options) { + return options.technical_max_depth > 0 + ? static_cast(options.technical_max_depth) : 1; +} + +std::string_view trimTrailingJsonWhitespace(std::string_view token) { + while (!token.empty()) { + if (const char tail = token.back(); + tail != ' ' && tail != '\t' && tail != '\n' && tail != '\r') { + break; + } + token.remove_suffix(1); + } + return token; +} + +/* + * The ondemand parser is reused per thread because simdjson benefits from + * keeping its internal buffers warm across parses. thread_local storage keeps + * the parser isolated to the calling thread, so no parser state is shared + * across transactions running on different threads. The parse and full + * document traversal both complete inside parseDocumentWithSimdjson(), so no + * parser-backed state escapes this function. We intentionally do not add an + * automatic release/recreate heuristic here: the vendored simdjson API + * explicitly supports parser reuse, and retained capacity after unusually + * large inputs remains a conscious tradeoff rather than an accidental leak. + */ +simdjson::ondemand::parser &getReusableSimdjsonParser() { + thread_local std::unique_ptr parser; + if (parser == nullptr) { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + const auto parser_start = std::chrono::steady_clock::now(); + parser.reset(new simdjson::ondemand::parser()); + recordSimdjsonParserConstruction(static_cast( + std::chrono::duration_cast( + std::chrono::steady_clock::now() - parser_start).count())); +#else + parser.reset(new simdjson::ondemand::parser()); +#endif + } + return *parser; +} + +std::size_t clampRequestedMaxDepth(std::size_t input_size, + const JsonBackendParseOptions &options) { + const std::size_t requested_depth = effectiveTechnicalMaxDepth(options); + const std::size_t max_possible_depth = (input_size / 2) + 1; + return std::min(requested_depth, std::max(1, + max_possible_depth)); +} + +simdjson::error_code prepareParser(simdjson::ondemand::parser *parser, + std::size_t input_size, const JsonBackendParseOptions &options) { + if (parser == nullptr) { + return simdjson::MEMALLOC; + } + + const JsonBackendParseOptions default_options; + std::size_t required_max_depth = parser->max_depth(); + if (options.technical_max_depth != default_options.technical_max_depth) { + required_max_depth = clampRequestedMaxDepth(input_size, options); + } + + if (parser->capacity() >= input_size + && parser->max_depth() == required_max_depth) { + return simdjson::SUCCESS; + } + + // simdjson reuses parser buffers across parses. allocate() can grow the + // per-thread parser to satisfy a larger document or different max-depth, + // but it does not proactively shrink retained capacity for later, smaller + // inputs. In simdjson 4.6.1 the max-depth parameter is only enforced by + // simdjson's development checks, so we keep passing it here for that + // internal guardrail while our own walker enforces technical_max_depth at + // runtime using current_depth(). + return parser->allocate(input_size, required_max_depth); +} + template JsonParseResult getResult(ResultType &&result, TargetType *target) { if (auto error = std::forward(result).get(*target); error) { @@ -98,7 +178,10 @@ JsonParseResult getResult(ResultType &&result, TargetType *target) { class JsonBackendWalker { public: - explicit JsonBackendWalker(JsonEventSink *sink) : m_sink(sink) { } + JsonBackendWalker(JsonEventSink *sink, + const JsonBackendParseOptions &options) + : m_sink(sink), + m_technical_max_depth(effectiveTechnicalMaxDepth(options)) { } JsonParseResult walk(simdjson::ondemand::document *document) { bool is_scalar = false; @@ -136,8 +219,8 @@ class JsonBackendWalker { return result; } - JsonSinkStatus sink_status = m_sink->on_string(decoded); - if (sink_status != JsonSinkStatus::Continue) { + if (JsonSinkStatus sink_status = m_sink->on_string(decoded); + sink_status != JsonSinkStatus::Continue) { return stopTraversal(sink_status, "handling a root string"); } return makeResult(JsonParseStatus::Ok); @@ -149,8 +232,9 @@ class JsonBackendWalker { return result; } - JsonSinkStatus sink_status = m_sink->on_number(raw_number); - if (sink_status != JsonSinkStatus::Continue) { + if (JsonSinkStatus sink_status = m_sink->on_number( + trimTrailingJsonWhitespace(raw_number)); + sink_status != JsonSinkStatus::Continue) { return stopTraversal(sink_status, "handling a root number"); } return makeResult(JsonParseStatus::Ok); @@ -162,8 +246,9 @@ class JsonBackendWalker { return result; } - JsonSinkStatus sink_status = m_sink->on_boolean(boolean_value); - if (sink_status != JsonSinkStatus::Continue) { + if (JsonSinkStatus sink_status = m_sink->on_boolean( + boolean_value); + sink_status != JsonSinkStatus::Continue) { return stopTraversal(sink_status, "handling a root boolean"); } return makeResult(JsonParseStatus::Ok); @@ -179,17 +264,19 @@ class JsonBackendWalker { "Root scalar classified as null but failed validation."); } - JsonSinkStatus sink_status = m_sink->on_null(); - if (sink_status != JsonSinkStatus::Continue) { + if (JsonSinkStatus sink_status = m_sink->on_null(); + sink_status != JsonSinkStatus::Continue) { return stopTraversal(sink_status, "handling a root null"); } return makeResult(JsonParseStatus::Ok); } + case simdjson::ondemand::json_type::unknown: + return makeResult(JsonParseStatus::ParseError, + "Invalid JSON token encountered in simdjson backend."); case simdjson::ondemand::json_type::object: case simdjson::ondemand::json_type::array: - case simdjson::ondemand::json_type::unknown: return makeResult(JsonParseStatus::InternalError, - "Unexpected root scalar type encountered in simdjson backend."); + "Unexpected root scalar container encountered in simdjson backend."); } return makeResult(JsonParseStatus::InternalError, @@ -199,15 +286,21 @@ class JsonBackendWalker { JsonParseResult walkValue(simdjson::ondemand::value value) { simdjson::ondemand::json_type type; - JsonParseResult result = getResult(value.type(), &type); - if (!result.ok()) { + if (JsonParseResult result = getResult(value.type(), &type); + !result.ok()) { return result; } switch (type) { case simdjson::ondemand::json_type::object: + if (auto result = enforceTechnicalDepth(value); !result.ok()) { + return result; + } return walkObject(value); case simdjson::ondemand::json_type::array: + if (auto result = enforceTechnicalDepth(value); !result.ok()) { + return result; + } return walkArray(value); case simdjson::ondemand::json_type::string: return walkString(value); @@ -216,15 +309,15 @@ class JsonBackendWalker { case simdjson::ondemand::json_type::boolean: return walkBoolean(value); case simdjson::ondemand::json_type::null: { - JsonSinkStatus sink_status = m_sink->on_null(); - if (sink_status != JsonSinkStatus::Continue) { + if (JsonSinkStatus sink_status = m_sink->on_null(); + sink_status != JsonSinkStatus::Continue) { return stopTraversal(sink_status, "handling a null value"); } return makeResult(JsonParseStatus::Ok); } case simdjson::ondemand::json_type::unknown: - return makeResult(JsonParseStatus::InternalError, - "Unknown JSON token type encountered."); + return makeResult(JsonParseStatus::ParseError, + "Invalid JSON token encountered in simdjson backend."); } return makeResult(JsonParseStatus::InternalError, @@ -315,13 +408,13 @@ class JsonBackendWalker { JsonParseResult walkString(simdjson::ondemand::value value) { std::string_view decoded; - JsonParseResult result = getResult(value.get_string(), &decoded); - if (!result.ok()) { + if (JsonParseResult result = getResult(value.get_string(), &decoded); + !result.ok()) { return result; } - JsonSinkStatus sink_status = m_sink->on_string(decoded); - if (sink_status != JsonSinkStatus::Continue) { + if (JsonSinkStatus sink_status = m_sink->on_string(decoded); + sink_status != JsonSinkStatus::Continue) { return stopTraversal(sink_status, "handling a string"); } @@ -329,10 +422,10 @@ class JsonBackendWalker { } JsonParseResult walkNumber(simdjson::ondemand::value value) { - std::string_view raw_number = value.raw_json_token(); - JsonSinkStatus sink_status = m_sink->on_number(raw_number); - - if (sink_status != JsonSinkStatus::Continue) { + std::string_view raw_number = trimTrailingJsonWhitespace( + value.raw_json_token()); + if (JsonSinkStatus sink_status = m_sink->on_number(raw_number); + sink_status != JsonSinkStatus::Continue) { return stopTraversal(sink_status, "handling a number"); } @@ -341,53 +434,92 @@ class JsonBackendWalker { JsonParseResult walkBoolean(simdjson::ondemand::value value) { bool boolean_value = false; - JsonParseResult result = getResult(value.get_bool(), &boolean_value); - if (!result.ok()) { + if (JsonParseResult result = getResult(value.get_bool(), + &boolean_value); !result.ok()) { return result; } - JsonSinkStatus sink_status = m_sink->on_boolean(boolean_value); - if (sink_status != JsonSinkStatus::Continue) { + if (JsonSinkStatus sink_status = m_sink->on_boolean(boolean_value); + sink_status != JsonSinkStatus::Continue) { return stopTraversal(sink_status, "handling a boolean"); } return makeResult(JsonParseStatus::Ok); } + JsonParseResult enforceTechnicalDepth(simdjson::ondemand::value value) { + const int32_t current_depth = value.current_depth(); + if (current_depth <= 0) { + return makeResult(JsonParseStatus::InternalError, + "Invalid current depth reported by simdjson backend."); + } + + if (static_cast(current_depth) > m_technical_max_depth) { + return makeResult(JsonParseStatus::ParseError, + "JSON nesting depth exceeds backend technical max depth."); + } + + return makeResult(JsonParseStatus::Ok); + } + JsonEventSink *m_sink; + std::size_t m_technical_max_depth; }; -} // namespace +struct PreparedSimdjsonInput { + simdjson::padded_string_view view{}; + simdjson::padded_string owned_copy{}; +}; -JsonParseResult parseDocumentWithSimdjson(const std::string &input, - JsonEventSink *sink, const JsonBackendParseOptions &options) { - (void) options; +PreparedSimdjsonInput prepareMutableSimdjsonInput(std::string *input) { + PreparedSimdjsonInput prepared; - if (sink == nullptr) { - return makeResult(JsonParseStatus::InternalError, - JsonSinkStatus::InternalError, "JSON event sink is null."); + // The production request-body path owns a mutable std::string, so we can + // pad that buffer in place and keep the logical JSON length in the + // returned padded_string_view. This removes the extra padded_string copy + // while still satisfying simdjson's padding requirement explicitly. + prepared.view = simdjson::pad(*input); + return prepared; +} + +PreparedSimdjsonInput prepareConstSimdjsonInput(const std::string &input) { + PreparedSimdjsonInput prepared; + prepared.view = simdjson::padded_string_view(input); + + // The const path must not guess about std::string capacity. We only parse + // directly when simdjson itself confirms that the existing allocation + // and/or trailing whitespace provide sufficient padding. + if (prepared.view.has_sufficient_padding()) { + return prepared; } #ifdef MSC_JSON_AUDIT_INSTRUMENTATION - const auto parser_start = std::chrono::steady_clock::now(); - simdjson::ondemand::parser parser; - recordSimdjsonParserConstruction(static_cast( - std::chrono::duration_cast( - std::chrono::steady_clock::now() - parser_start).count())); const auto padded_start = std::chrono::steady_clock::now(); - simdjson::padded_string padded(input); + prepared.owned_copy = simdjson::padded_string(input); recordSimdjsonPaddedCopy(input.size(), static_cast( std::chrono::duration_cast( std::chrono::steady_clock::now() - padded_start).count())); #else - simdjson::ondemand::parser parser; - simdjson::padded_string padded(input); + prepared.owned_copy = simdjson::padded_string(input); #endif - simdjson::ondemand::document document; + prepared.view = prepared.owned_copy; + return prepared; +} + +JsonParseResult parsePreparedDocumentWithSimdjson( + simdjson::padded_string_view input, JsonEventSink *sink, + const JsonBackendParseOptions &options) { + simdjson::ondemand::parser &parser = getReusableSimdjsonParser(); + // This only prepares parser capacity and max-depth bookkeeping. Buffer + // lifetime and padding must already have been handled by the caller. + if (auto error = prepareParser(&parser, input.length(), options); error) { + return fromSimdjsonError(error); + } + simdjson::ondemand::document document; #ifdef MSC_JSON_AUDIT_INSTRUMENTATION const auto iterate_start = std::chrono::steady_clock::now(); - if (auto error = parser.iterate(padded).get(document); error) { + if (auto error = parser.iterate(input).get(document); error) { recordSimdjsonIterate(static_cast( std::chrono::duration_cast( std::chrono::steady_clock::now() - iterate_start).count())); @@ -397,14 +529,37 @@ JsonParseResult parseDocumentWithSimdjson(const std::string &input, std::chrono::duration_cast( std::chrono::steady_clock::now() - iterate_start).count())); #else - if (auto error = parser.iterate(padded).get(document); error) { + if (auto error = parser.iterate(input).get(document); error) { return fromSimdjsonError(error); } #endif - JsonBackendWalker walker(sink); + JsonBackendWalker walker(sink, options); return walker.walk(&document); } -} // namespace RequestBodyProcessor -} // namespace modsecurity +} // namespace + +JsonParseResult parseDocumentWithSimdjson(std::string &input, + JsonEventSink *sink, const JsonBackendParseOptions &options) { + if (sink == nullptr) { + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::InternalError, "JSON event sink is null."); + } + + PreparedSimdjsonInput prepared = prepareMutableSimdjsonInput(&input); + return parsePreparedDocumentWithSimdjson(prepared.view, sink, options); +} + +JsonParseResult parseDocumentWithSimdjson(const std::string &input, + JsonEventSink *sink, const JsonBackendParseOptions &options) { + if (sink == nullptr) { + return makeResult(JsonParseStatus::InternalError, + JsonSinkStatus::InternalError, "JSON event sink is null."); + } + + PreparedSimdjsonInput prepared = prepareConstSimdjsonInput(input); + return parsePreparedDocumentWithSimdjson(prepared.view, sink, options); +} + +} // namespace modsecurity::RequestBodyProcessor diff --git a/src/request_body_processor/json_instrumentation.cc b/src/request_body_processor/json_instrumentation.cc index b441f03d19..894de140d2 100644 --- a/src/request_body_processor/json_instrumentation.cc +++ b/src/request_body_processor/json_instrumentation.cc @@ -6,8 +6,7 @@ #include -namespace modsecurity { -namespace RequestBodyProcessor { +namespace modsecurity::RequestBodyProcessor { namespace { thread_local JsonInstrumentationMetrics g_metrics; @@ -114,5 +113,10 @@ void recordJsonconsTokenSyncStep() noexcept { #endif } -} // namespace RequestBodyProcessor -} // namespace modsecurity +void recordJsonconsTokenExactAdvanceStep() noexcept { +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + g_metrics.jsoncons_token_exact_advance_steps++; +#endif +} + +} // namespace modsecurity::RequestBodyProcessor diff --git a/src/request_body_processor/json_instrumentation.h b/src/request_body_processor/json_instrumentation.h index 567e7269f3..56c486060e 100644 --- a/src/request_body_processor/json_instrumentation.h +++ b/src/request_body_processor/json_instrumentation.h @@ -6,8 +6,7 @@ #include #include -namespace modsecurity { -namespace RequestBodyProcessor { +namespace modsecurity::RequestBodyProcessor { struct JsonInstrumentationMetrics { std::uint64_t request_body_snapshot_count{0}; @@ -30,6 +29,7 @@ struct JsonInstrumentationMetrics { std::uint64_t jsoncons_token_cursor_init_ns{0}; std::uint64_t jsoncons_event_loop_ns{0}; std::uint64_t jsoncons_token_sync_steps{0}; + std::uint64_t jsoncons_token_exact_advance_steps{0}; }; void jsonInstrumentationReset() noexcept; @@ -47,8 +47,8 @@ void recordJsonconsCursorInit(std::uint64_t elapsed_ns) noexcept; void recordJsonconsTokenCursorInit(std::uint64_t elapsed_ns) noexcept; void recordJsonconsEventLoop(std::uint64_t elapsed_ns) noexcept; void recordJsonconsTokenSyncStep() noexcept; +void recordJsonconsTokenExactAdvanceStep() noexcept; -} // namespace RequestBodyProcessor -} // namespace modsecurity +} // namespace modsecurity::RequestBodyProcessor #endif // SRC_REQUEST_BODY_PROCESSOR_JSON_INSTRUMENTATION_H_ diff --git a/src/utils/json_writer.cc b/src/utils/json_writer.cc index 9d2ddc1032..dea528dc24 100644 --- a/src/utils/json_writer.cc +++ b/src/utils/json_writer.cc @@ -18,8 +18,7 @@ #include #include -namespace modsecurity { -namespace utils { +namespace modsecurity::utils { JsonWriter::JsonWriter(bool pretty, std::string indent) : m_output(), @@ -161,10 +160,10 @@ void JsonWriter::write_escaped_string(std::string_view value) { for (const unsigned char c : value) { switch (c) { case '"': - m_output.append("\\\""); + m_output.append(R"(\")"); break; case '\\': - m_output.append("\\\\"); + m_output.append(R"(\\)"); break; case '\b': m_output.append("\\b"); @@ -195,5 +194,4 @@ void JsonWriter::write_escaped_string(std::string_view value) { m_output.push_back('"'); } -} // namespace utils -} // namespace modsecurity +} // namespace modsecurity::utils diff --git a/src/utils/json_writer.h b/src/utils/json_writer.h index 04ce1df7df..ac549d592b 100644 --- a/src/utils/json_writer.h +++ b/src/utils/json_writer.h @@ -21,8 +21,7 @@ #include #include -namespace modsecurity { -namespace utils { +namespace modsecurity::utils { class JsonWriter { public: @@ -68,7 +67,6 @@ class JsonWriter { std::string m_indent; }; -} // namespace utils -} // namespace modsecurity +} // namespace modsecurity::utils #endif // SRC_UTILS_JSON_WRITER_H_ diff --git a/src/utils/msc_tree.cc b/src/utils/msc_tree.cc index 3b622d5c93..0fe42c38fc 100644 --- a/src/utils/msc_tree.cc +++ b/src/utils/msc_tree.cc @@ -983,14 +983,14 @@ int tree_contains_ip(TreeRoot *rtree, static int add_ip_entries_from_param(const char *param, TreeRoot *rtree) { char *param_copy = strdup(param); - char *saved = NULL; - char *str = NULL; - TreeNode *tnode = NULL; + char *saved = nullptr; + char *str = nullptr; + TreeNode *tnode = nullptr; str = strtok_r(param_copy, ",", &saved); - while (str != NULL) + while (str != nullptr) { - if (strchr(str, ':') == NULL) + if (strchr(str, ':') == nullptr) { tnode = TreeAddIP(str, rtree->ipv4_tree, IPV4_TREE); } @@ -999,13 +999,13 @@ static int add_ip_entries_from_param(const char *param, TreeRoot *rtree) tnode = TreeAddIP(str, rtree->ipv6_tree, IPV6_TREE); } - if (tnode == NULL) + if (tnode == nullptr) { free(param_copy); return -1; } - str = strtok_r(NULL, ",", &saved); + str = strtok_r(nullptr, ",", &saved); } free(param_copy); diff --git a/test/Makefile.am b/test/Makefile.am index e9881375ef..4d3a469620 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -35,6 +35,10 @@ unit_tests_SOURCES = \ unit/unit_test.cc \ common/custom_debug_log.cc +noinst_PROGRAMS += json_backend_depth_tests +json_backend_depth_tests_SOURCES = \ + unit/json_backend_depth_tests.cc + noinst_HEADERS = \ $(srcdir)/common/colors.h \ @@ -91,6 +95,15 @@ unit_tests_CPPFLAGS = \ $(SSDEEP_CFLAGS) \ $(LIBXML2_CFLAGS) +json_backend_depth_tests_LDADD = \ + $(unit_tests_LDADD) + +json_backend_depth_tests_LDFLAGS = \ + $(unit_tests_LDFLAGS) + +json_backend_depth_tests_CPPFLAGS = \ + $(unit_tests_CPPFLAGS) + # regression diff --git a/test/benchmark/json_benchmark.cc b/test/benchmark/json_benchmark.cc index ed6dedb2ec..e37f9cb412 100644 --- a/test/benchmark/json_benchmark.cc +++ b/test/benchmark/json_benchmark.cc @@ -15,6 +15,7 @@ #include "config.h" +#include #include #include @@ -149,8 +150,8 @@ Options parseOptions(int argc, const char *argv[]) { if (i + 1 >= argc) { throw std::runtime_error("missing value for --output"); } - const std::string output_format(argv[++i]); - if (output_format != "json") { + if (const std::string output_format(argv[++i]); + output_format != "json") { throw std::runtime_error("unsupported output format: " + output_format); } @@ -164,9 +165,9 @@ Options parseOptions(int argc, const char *argv[]) { throw std::runtime_error("missing required --scenario"); } - const bool is_invalid_scenario = options.scenario == "truncated" - || options.scenario == "malformed"; - if (is_invalid_scenario && !options.include_invalid) { + if (const bool is_invalid_scenario = options.scenario == "truncated" + || options.scenario == "malformed"; + is_invalid_scenario && !options.include_invalid) { throw std::runtime_error( "invalid JSON scenarios require --include-invalid"); } @@ -195,13 +196,13 @@ std::string makeLargeObject(std::size_t target_bytes) { } std::string makeUtf8Object(std::size_t target_bytes) { - static const char *const utf8_values[] = { + static const std::array utf8_values{{ u8"Gr\u00fc\u00dfe", u8"\u3053\u3093\u306b\u3061\u306f", u8"\u043f\u0440\u0438\u0432\u0435\u0442", u8"\u0645\u0631\u062d\u0628\u0627", u8"\U0001F30D" - }; + }}; std::string body("{"); std::size_t index = 0; @@ -213,7 +214,7 @@ std::string makeUtf8Object(std::size_t target_bytes) { body += "\"utf8_"; body += std::to_string(index); body += "\":\""; - body += utf8_values[index % (sizeof(utf8_values) / sizeof(utf8_values[0]))]; + body += utf8_values[index % utf8_values.size()]; body += "\""; index++; } @@ -223,7 +224,7 @@ std::string makeUtf8Object(std::size_t target_bytes) { } std::string makeNumbersArray(std::size_t target_bytes) { - static const char *const numeric_tokens[] = { + static const std::array numeric_tokens{{ "0", "-0", "1.0", @@ -232,7 +233,7 @@ std::string makeNumbersArray(std::size_t target_bytes) { "123456789012345678901234567890", "6.02214076e23", "3.141592653589793238462643383279" - }; + }}; std::string body("["); std::size_t index = 0; @@ -241,8 +242,7 @@ std::string makeNumbersArray(std::size_t target_bytes) { if (index > 0) { body.push_back(','); } - body += numeric_tokens[index - % (sizeof(numeric_tokens) / sizeof(numeric_tokens[0]))]; + body += numeric_tokens[index % numeric_tokens.size()]; index++; } @@ -353,10 +353,9 @@ Metrics runBenchmark(modsecurity::ModSecurity *modsec, const bool parse_success = isResolvedZero(reqbody_error) && isResolvedZero(processor_error); - const bool parse_error = !isResolvedZero(reqbody_error) - || !isResolvedZero(processor_error); - - if (parse_success == parse_error) { + if (const bool parse_error = !isResolvedZero(reqbody_error) + || !isResolvedZero(processor_error); + parse_success == parse_error) { throw std::runtime_error( "ambiguous JSON parse outcome observed in benchmark"); } @@ -382,8 +381,8 @@ long currentMaxRssKb() { void printJson(const Options &options, const std::string &body, const Metrics &metrics) { std::cout << "{"; - std::cout << "\"backend\":\"" << benchmarkBackend() << "\","; - std::cout << "\"scenario\":\"" << options.scenario << "\","; + std::cout << R"("backend":")" << benchmarkBackend() << "\","; + std::cout << R"("scenario":")" << options.scenario << "\","; std::cout << "\"iterations\":" << options.iterations << ","; std::cout << "\"body_bytes\":" << body.size() << ","; std::cout << "\"append_request_body_ns\":" @@ -435,6 +434,8 @@ void printJson(const Options &options, const std::string &body, << instrumentation.jsoncons_event_loop_ns; std::cout << ",\"jsoncons_token_sync_steps\":" << instrumentation.jsoncons_token_sync_steps; + std::cout << ",\"jsoncons_token_exact_advance_steps\":" + << instrumentation.jsoncons_token_exact_advance_steps; #endif std::cout << "}" << std::endl; } @@ -470,8 +471,8 @@ int main(int argc, const char *argv[]) { "ModSecurity-json-benchmark v0.0.1-alpha"); modsecurity::RulesSet rules; - const std::string rules_path = rulesFilePath(); - if (rules.loadFromUri(rules_path.c_str()) < 0) { + if (const std::string rules_path = rulesFilePath(); + rules.loadFromUri(rules_path.c_str()) < 0) { std::cerr << "failed to load benchmark rules from " << rules_path << std::endl; std::cerr << rules.m_parserError.str() << std::endl; diff --git a/test/benchmark/run-json-benchmarks.sh b/test/benchmark/run-json-benchmarks.sh index 779b7c3c5b..1f87e5f791 100755 --- a/test/benchmark/run-json-benchmarks.sh +++ b/test/benchmark/run-json-benchmarks.sh @@ -13,16 +13,16 @@ jsoncons_build="" include_invalid=0 output_file="${PWD}/json-benchmark-results.jsonl" -while [ "$#" -gt 0 ]; do +while [[ "$#" -gt 0 ]]; do case "$1" in --simdjson-build) shift - [ "$#" -gt 0 ] || { usage; exit 64; } + [[ "$#" -gt 0 ]] || { usage; exit 64; } simdjson_build="$1" ;; --jsoncons-build) shift - [ "$#" -gt 0 ] || { usage; exit 64; } + [[ "$#" -gt 0 ]] || { usage; exit 64; } jsoncons_build="$1" ;; --include-invalid) @@ -40,8 +40,8 @@ while [ "$#" -gt 0 ]; do shift done -[ -n "${simdjson_build}" ] || { usage; exit 64; } -[ -n "${jsoncons_build}" ] || { usage; exit 64; } +[[ -n "${simdjson_build}" ]] || { usage; exit 64; } +[[ -n "${jsoncons_build}" ]] || { usage; exit 64; } readonly base_scenarios=( "large-object" @@ -60,7 +60,7 @@ run_scenarios() { local binary="${build_dir}/test/benchmark/json_benchmark" local scenario - if [ ! -x "${binary}" ]; then + if [[ ! -x "${binary}" ]]; then echo "missing benchmark binary: ${binary}" >&2 return 1 fi @@ -69,7 +69,7 @@ run_scenarios() { "${binary}" --scenario "${scenario}" --output json >> "${output_file}" done - if [ "${include_invalid}" -ne 0 ]; then + if [[ "${include_invalid}" -ne 0 ]]; then for scenario in "${invalid_scenarios[@]}"; do "${binary}" --scenario "${scenario}" --include-invalid --output json >> "${output_file}" done diff --git a/test/common/json.h b/test/common/json.h index f98d8b07c5..e365edd90a 100644 --- a/test/common/json.h +++ b/test/common/json.h @@ -23,8 +23,7 @@ #include #include -namespace modsecurity_test { -namespace json { +namespace modsecurity_test::json { enum class JsonType { Object, @@ -336,7 +335,6 @@ inline int64_t get_integer(JsonValue value) { } } -} // namespace json -} // namespace modsecurity_test +} // namespace modsecurity_test::json #endif // TEST_COMMON_JSON_H_ diff --git a/test/run-json-backend-matrix.sh b/test/run-json-backend-matrix.sh index e437461cac..4317999922 100755 --- a/test/run-json-backend-matrix.sh +++ b/test/run-json-backend-matrix.sh @@ -22,21 +22,21 @@ jobs="$(getconf _NPROCESSORS_ONLN 2>/dev/null || printf '1')" configure_extra="" keep_build_dirs=0 -while [ "$#" -gt 0 ]; do +while [[ "$#" -gt 0 ]]; do case "$1" in --build-root) shift - [ "$#" -gt 0 ] || { usage; exit 64; } + [[ "$#" -gt 0 ]] || { usage; exit 64; } build_root="$1" ;; --jobs) shift - [ "$#" -gt 0 ] || { usage; exit 64; } + [[ "$#" -gt 0 ]] || { usage; exit 64; } jobs="$1" ;; --configure-extra) shift - [ "$#" -gt 0 ] || { usage; exit 64; } + [[ "$#" -gt 0 ]] || { usage; exit 64; } configure_extra="$1" ;; --keep-build-dirs) @@ -55,7 +55,7 @@ while [ "$#" -gt 0 ]; do done declare -a configure_extra_args=() -if [ -n "${configure_extra}" ]; then +if [[ -n "${configure_extra}" ]]; then read -r -a configure_extra_args <<< "${configure_extra}" fi @@ -87,7 +87,7 @@ run_backend() { local build_status=0 local test_status=0 - if [ "${keep_build_dirs}" -eq 0 ]; then + if [[ "${keep_build_dirs}" -eq 0 ]]; then rm -rf "${build_dir}" fi mkdir -p "${build_dir}" @@ -100,7 +100,7 @@ run_backend() { "${configure_extra_args[@]}" ) >> "${raw_log}" 2>&1 configure_status=$? - if [ "${configure_status}" -ne 0 ]; then + if [[ "${configure_status}" -ne 0 ]]; then return 10 fi @@ -109,7 +109,7 @@ run_backend() { make -j "${jobs}" -C others ) >> "${raw_log}" 2>&1 build_status=$? - if [ "${build_status}" -ne 0 ]; then + if [[ "${build_status}" -ne 0 ]]; then return 11 fi @@ -118,16 +118,16 @@ run_backend() { make -j "${jobs}" -C src libmodsecurity.la ) >> "${raw_log}" 2>&1 build_status=$? - if [ "${build_status}" -ne 0 ]; then + if [[ "${build_status}" -ne 0 ]]; then return 11 fi ( cd "${build_dir}" && \ - make -j "${jobs}" -C test regression_tests + make -j "${jobs}" -C test regression_tests json_backend_depth_tests ) >> "${raw_log}" 2>&1 build_status=$? - if [ "${build_status}" -ne 0 ]; then + if [[ "${build_status}" -ne 0 ]]; then return 11 fi @@ -136,13 +136,21 @@ run_backend() { cd "${build_dir}/test" && \ ./regression_tests automake "${repo_root}/${test_file}" ) >> "${raw_log}" 2>&1 - if [ "$?" -ne 0 ]; then + if [[ "$?" -ne 0 ]]; then test_status=1 fi done + ( + cd "${build_dir}/test" && \ + ./json_backend_depth_tests + ) >> "${raw_log}" 2>&1 + if [[ "$?" -ne 0 ]]; then + test_status=1 + fi + extract_summary "${backend}" "${raw_log}" "${summary_file}" - if [ ! -s "${summary_file}" ]; then + if [[ ! -s "${summary_file}" ]]; then test_status=1 fi if awk -F '\t' '$4 != "PASS" {exit 1}' "${summary_file}"; then @@ -151,7 +159,7 @@ run_backend() { test_status=1 fi - if [ "${test_status}" -ne 0 ]; then + if [[ "${test_status}" -ne 0 ]]; then return 12 fi return 0 @@ -189,7 +197,7 @@ else exit 13 fi -if [ "${backend_test_failure}" -ne 0 ]; then +if [[ "${backend_test_failure}" -ne 0 ]]; then exit 12 fi diff --git a/test/test-cases/regression/request-body-parser-json-backend-edgecases.json b/test/test-cases/regression/request-body-parser-json-backend-edgecases.json index e19a0a3bc5..03c87a0348 100644 --- a/test/test-cases/regression/request-body-parser-json-backend-edgecases.json +++ b/test/test-cases/regression/request-body-parser-json-backend-edgecases.json @@ -44,6 +44,51 @@ "SecRule ARGS:json \"^hello$\" \"id:'210102',phase:3,log\"" ] }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - root scalar zero", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "1" + }, + "uri": "/", + "method": "POST", + "body": [ + "0" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"0\" \\(Variable: ARGS:json\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210131',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json \"^0$\" \"id:'210132',phase:3,log\"" + ] + }, { "enabled": 1, "version_min": 300000, @@ -134,6 +179,51 @@ "SecRule ARGS:json \"^1e3$\" \"id:'210106',phase:3,log\"" ] }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - root scalar negative fraction with exponent", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "8" + }, + "uri": "/", + "method": "POST", + "body": [ + "-1.25e-4" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"-1.25e-4\" \\(Variable: ARGS:json\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210133',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json \"^-1\\.25e-4$\" \"id:'210134',phase:3,log\"" + ] + }, { "enabled": 1, "version_min": 300000, @@ -179,6 +269,96 @@ "SecRule ARGS:json \"^-0$\" \"id:'210108',phase:3,log\"" ] }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - root scalar uint64 max", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "20" + }, + "uri": "/", + "method": "POST", + "body": [ + "18446744073709551615" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"18446744073709551615\" \\(Variable: ARGS:json\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210135',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json \"^18446744073709551615$\" \"id:'210136',phase:3,log\"" + ] + }, + { + "enabled": 1, + "version_min": 300000, + "title": "Testing JSON request body parser - root scalar uint64 overflow", + "client": { + "ip": "200.249.12.31", + "port": 123 + }, + "server": { + "ip": "200.249.12.31", + "port": 80 + }, + "request": { + "headers": { + "Host": "localhost", + "User-Agent": "curl/7.38.0", + "Accept": "*/*", + "Content-Type": "application/json", + "Content-Length": "20" + }, + "uri": "/", + "method": "POST", + "body": [ + "18446744073709551616" + ] + }, + "response": { + "headers": { + "Content-Length": "0" + }, + "body": [ + "" + ] + }, + "expected": { + "debug_log": "Target value: \"18446744073709551616\" \\(Variable: ARGS:json\\)", + "http_code": 200 + }, + "rules": [ + "SecRuleEngine On", + "SecRequestBodyAccess On", + "SecRule REQUEST_HEADERS:Content-Type \"application/json\" \"id:'210137',phase:1,t:none,t:lowercase,pass,nolog,ctl:requestBodyProcessor=JSON\"", + "SecRule ARGS:json \"^18446744073709551616$\" \"id:'210138',phase:3,log\"" + ] + }, { "enabled": 1, "version_min": 300000, diff --git a/test/unit/json_backend_depth_tests.cc b/test/unit/json_backend_depth_tests.cc new file mode 100644 index 0000000000..ebc76d843a --- /dev/null +++ b/test/unit/json_backend_depth_tests.cc @@ -0,0 +1,487 @@ +/* + * ModSecurity, http://www.modsecurity.org/ + * Copyright (c) 2015 - 2024 Trustwave Holdings, Inc. (http://www.trustwave.com/) + * + * You may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * If any of the files related to licensing are missing or if you have any + * other questions related to licensing please contact Trustwave Holdings, Inc. + * directly using the email address security@modsecurity.org. + * + */ + +#include +#include +#include +#include +#include + +#include "src/request_body_processor/json_adapter.h" + +namespace modsecurity::RequestBodyProcessor { +namespace { + +class AcceptAllSink : public JsonEventSink { + public: + JsonSinkStatus on_start_object() override { + return JsonSinkStatus::Continue; + } + + JsonSinkStatus on_end_object() override { + return JsonSinkStatus::Continue; + } + + JsonSinkStatus on_start_array() override { + return JsonSinkStatus::Continue; + } + + JsonSinkStatus on_end_array() override { + return JsonSinkStatus::Continue; + } + + JsonSinkStatus on_key(std::string_view value) override { + (void) value; + return JsonSinkStatus::Continue; + } + + JsonSinkStatus on_string(std::string_view value) override { + (void) value; + return JsonSinkStatus::Continue; + } + + JsonSinkStatus on_number(std::string_view raw_number) override { + (void) raw_number; + return JsonSinkStatus::Continue; + } + + JsonSinkStatus on_boolean(bool value) override { + (void) value; + return JsonSinkStatus::Continue; + } + + JsonSinkStatus on_null() override { + return JsonSinkStatus::Continue; + } +}; + +class NumberCollectingSink : public AcceptAllSink { + public: + JsonSinkStatus on_number(std::string_view raw_number) override { + numbers.emplace_back(raw_number.data(), raw_number.size()); + return JsonSinkStatus::Continue; + } + + std::vector numbers; +}; + +const char *parseStatusName(JsonParseStatus status) { + switch (status) { + case JsonParseStatus::Ok: + return "Ok"; + case JsonParseStatus::ParseError: + return "ParseError"; + case JsonParseStatus::TruncatedInput: + return "TruncatedInput"; + case JsonParseStatus::Utf8Error: + return "Utf8Error"; + case JsonParseStatus::EngineAbort: + return "EngineAbort"; + case JsonParseStatus::InternalError: + return "InternalError"; + } + + return "UnknownParseStatus"; +} + +const char *sinkStatusName(JsonSinkStatus status) { + switch (status) { + case JsonSinkStatus::Continue: + return "Continue"; + case JsonSinkStatus::EngineAbort: + return "EngineAbort"; + case JsonSinkStatus::DepthLimitExceeded: + return "DepthLimitExceeded"; + case JsonSinkStatus::InternalError: + return "InternalError"; + } + + return "UnknownSinkStatus"; +} + +std::string makeNestedArrayJson(std::size_t depth) { + std::string input(depth, '['); + input.push_back('0'); + input.append(depth, ']'); + return input; +} + +std::string describeUnexpectedResult(const JsonParseResult &result, + const char *expectation) { + std::string detail = std::string("Expected ") + expectation + ", got " + + parseStatusName(result.parse_status) + "/" + + sinkStatusName(result.sink_status) + "."; + if (!result.detail.empty()) { + detail.append(" "); + detail.append(result.detail); + } + return detail; +} + +std::string describeStringList(const std::vector &values) { + std::string description = "["; + + for (std::size_t i = 0; i < values.size(); i++) { + if (i != 0) { + description.append(", "); + } + description.push_back('"'); + description.append(values[i]); + description.push_back('"'); + } + + description.push_back(']'); + return description; +} + +bool expectParseResult(const std::string &input, JsonParseStatus parse_status, + JsonSinkStatus sink_status, const char *expectation, + std::string *failure_detail) { + AcceptAllSink sink; + JSONAdapter adapter; + if (JsonParseResult result = adapter.parse(input, &sink, + JsonBackendParseOptions()); result.parse_status != parse_status + || result.sink_status != sink_status) { + if (failure_detail != nullptr) { + *failure_detail = describeUnexpectedResult(result, expectation); + failure_detail->append(" Input: "); + failure_detail->append(input); + } + return false; + } + + return true; +} + +bool collectNumberLexemes(const std::string &input, + std::vector *numbers, std::string *failure_detail) { + NumberCollectingSink sink; + JSONAdapter adapter; + if (JsonParseResult result = adapter.parse(input, &sink, + JsonBackendParseOptions()); !result.ok()) { + if (failure_detail != nullptr) { + *failure_detail = describeUnexpectedResult(result, "Ok/Continue"); + failure_detail->append(" Input: "); + failure_detail->append(input); + } + return false; + } + + if (numbers != nullptr) { + *numbers = sink.numbers; + } + return true; +} + +bool collectNumberLexemes(std::string *input, std::vector *numbers, + std::string *failure_detail) { + NumberCollectingSink sink; + JSONAdapter adapter; + if (JsonParseResult result = adapter.parse(*input, &sink, + JsonBackendParseOptions()); !result.ok()) { + if (failure_detail != nullptr) { + *failure_detail = describeUnexpectedResult(result, "Ok/Continue"); + failure_detail->append(" Input: "); + failure_detail->append(*input); + } + return false; + } + + if (numbers != nullptr) { + *numbers = sink.numbers; + } + return true; +} + +bool expectNumberLexemes(const char *case_name, const std::string &input, + const std::vector &expected, std::string *failure_detail) { + std::vector actual; + if (!collectNumberLexemes(input, &actual, failure_detail)) { + return false; + } + + if (actual != expected) { + if (failure_detail != nullptr) { + *failure_detail = std::string("Case '") + case_name + + "' expected " + describeStringList(expected) + + ", got " + describeStringList(actual) + "."; + } + return false; + } + + return true; +} + +bool expectBackendDepthLimitParseError(std::string *failure_detail) { + AcceptAllSink sink; + JSONAdapter adapter; + JsonBackendParseOptions options; + + options.technical_max_depth = 2; + if (JsonParseResult result = adapter.parse(makeNestedArrayJson(8), &sink, + options); result.parse_status != JsonParseStatus::ParseError + || result.sink_status != JsonSinkStatus::Continue) { + if (failure_detail != nullptr) { + *failure_detail = describeUnexpectedResult(result, + "ParseError/Continue"); + } + return false; + } + + return true; +} + +bool expectBackendDepthHeadroomSuccess(std::string *failure_detail) { + AcceptAllSink sink; + JSONAdapter adapter; + JsonBackendParseOptions options; + + options.technical_max_depth = 32; + if (JsonParseResult result = adapter.parse(makeNestedArrayJson(8), &sink, + options); !result.ok()) { + if (failure_detail != nullptr) { + *failure_detail = describeUnexpectedResult(result, "Ok/Continue"); + } + return false; + } + + return true; +} + +bool expectEmptyInputSuccess(std::string *failure_detail) { + return expectParseResult("", JsonParseStatus::Ok, + JsonSinkStatus::Continue, "Ok/Continue", failure_detail); +} + +bool expectMalformedInputParseError(std::string *failure_detail) { + return expectParseResult("a", JsonParseStatus::ParseError, + JsonSinkStatus::Continue, "ParseError/Continue", failure_detail); +} + +bool expectTruncatedInputMapsToTruncatedInput(std::string *failure_detail) { + return expectParseResult("{\"key\":", JsonParseStatus::TruncatedInput, + JsonSinkStatus::Continue, "TruncatedInput/Continue", failure_detail); +} + +bool expectExactRootScalarNumberLexemes(std::string *failure_detail) { + struct NumberLexemeCase { + const char *name; + const char *input; + }; + + const std::array cases{{ + {"zero", "0"}, + {"negative_zero", "-0"}, + {"decimal", "1.0"}, + {"scientific", "1e3"}, + {"negative_fraction_with_exponent", "-1.25e-4"}, + {"uint64_max", "18446744073709551615"}, + {"uint64_overflow", "18446744073709551616"}, + {"large_integer", "123456789012345678901234567890"} + }}; + + for (const auto &test_case : cases) { + if (!expectNumberLexemes(test_case.name, test_case.input, + std::vector{test_case.input}, failure_detail)) { + return false; + } + } + + return true; +} + +bool expectExactContainerNumberLexemes(std::string *failure_detail) { + const std::string input = + R"({ "arr" : [ 0 , -0 , 1.0 , 1e3 ], )" + R"("obj" : { "frac" : -1.25e-4 , )" + R"("max" : 18446744073709551615 , )" + R"("over" : 18446744073709551616 , )" + R"("big" : 123456789012345678901234567890 } })"; + + return expectNumberLexemes("container_numbers_with_whitespace_and_boundaries", + input, std::vector{ + "0", + "-0", + "1.0", + "1e3", + "-1.25e-4", + "18446744073709551615", + "18446744073709551616", + "123456789012345678901234567890" + }, failure_detail); +} + +#if defined(MSC_JSON_BACKEND_SIMDJSON) +bool isJsonWhitespace(char value) { + return value == ' ' || value == '\t' || value == '\n' || value == '\r'; +} + +bool expectMutableSimdjsonPathPreservesLogicalInput( + std::string *failure_detail) { + std::string input("{\"n\":1}"); + const std::string original = input; + std::vector numbers; + + input.shrink_to_fit(); + if (!collectNumberLexemes(&input, &numbers, failure_detail)) { + return false; + } + + if (numbers != std::vector{"1"}) { + if (failure_detail != nullptr) { + *failure_detail = std::string("Expected [\"1\"], got ") + + describeStringList(numbers) + "."; + } + return false; + } + + if (input.size() <= original.size()) { + if (failure_detail != nullptr) { + *failure_detail = "Expected mutable simdjson input to grow after " + "in-place padding."; + } + return false; + } + + if (input.compare(0, original.size(), original) != 0) { + if (failure_detail != nullptr) { + *failure_detail = "Mutable simdjson input changed its logical JSON " + "prefix."; + } + return false; + } + + for (std::size_t i = original.size(); i < input.size(); i++) { + if (!isJsonWhitespace(input[i])) { + if (failure_detail != nullptr) { + *failure_detail = "Mutable simdjson input appended a non-" + "whitespace padding byte."; + } + return false; + } + } + + return true; +} + +bool expectConstSimdjsonPathLeavesInputUntouched(std::string *failure_detail) { + const std::string original("{\"n\":1}"); + std::string input = original; + std::vector numbers; + + input.shrink_to_fit(); + if (!collectNumberLexemes(static_cast(input), &numbers, + failure_detail)) { + return false; + } + + if (numbers != std::vector{"1"}) { + if (failure_detail != nullptr) { + *failure_detail = std::string("Expected [\"1\"], got ") + + describeStringList(numbers) + "."; + } + return false; + } + + if (input != original) { + if (failure_detail != nullptr) { + *failure_detail = "Const simdjson input was mutated."; + } + return false; + } + + return true; +} +#endif + +bool reportTestResult(const char *name, bool passed, + const std::string &detail) { + std::cout << ":test-result: " << (passed ? "PASS " : "FAIL ") + << "json_backend_depth_tests:" << name << std::endl; + if (!passed && !detail.empty()) { + std::cerr << name << ": " << detail << std::endl; + } + return passed; +} + +} // namespace + +int runJsonBackendDepthTests() { + int failures = 0; + std::string detail; + + if (!reportTestResult("technical_depth_limit_returns_parse_error", + expectBackendDepthLimitParseError(&detail), detail)) { + failures++; + } + + detail.clear(); + if (!reportTestResult("technical_depth_with_headroom_succeeds", + expectBackendDepthHeadroomSuccess(&detail), detail)) { + failures++; + } + + detail.clear(); + if (!reportTestResult("empty_input_returns_ok", + expectEmptyInputSuccess(&detail), detail)) { + failures++; + } + + detail.clear(); + if (!reportTestResult("malformed_input_maps_to_parse_error", + expectMalformedInputParseError(&detail), detail)) { + failures++; + } + + detail.clear(); + if (!reportTestResult("truncated_input_maps_to_truncated_input", + expectTruncatedInputMapsToTruncatedInput(&detail), detail)) { + failures++; + } + + detail.clear(); + if (!reportTestResult("number_lexemes_for_root_scalars_remain_exact", + expectExactRootScalarNumberLexemes(&detail), detail)) { + failures++; + } + + detail.clear(); + if (!reportTestResult("number_lexemes_in_containers_remain_exact", + expectExactContainerNumberLexemes(&detail), detail)) { + failures++; + } + +#if defined(MSC_JSON_BACKEND_SIMDJSON) + detail.clear(); + if (!reportTestResult("mutable_simdjson_input_keeps_logical_json_prefix", + expectMutableSimdjsonPathPreservesLogicalInput(&detail), detail)) { + failures++; + } + + detail.clear(); + if (!reportTestResult("const_simdjson_input_is_not_mutated", + expectConstSimdjsonPathLeavesInputUntouched(&detail), detail)) { + failures++; + } +#endif + + return failures == 0 ? 0 : 1; +} + +} // namespace modsecurity::RequestBodyProcessor + +int main() { + return modsecurity::RequestBodyProcessor::runJsonBackendDepthTests(); +} diff --git a/test/unit/unit_test.h b/test/unit/unit_test.h index 7eea22cb11..a92565fc6c 100644 --- a/test/unit/unit_test.h +++ b/test/unit/unit_test.h @@ -27,7 +27,7 @@ namespace modsecurity_test { class UnitTestResult { public: - int ret; + int ret = 0; std::string output; }; From db6d1de933150e36fef2464c6201ebcd89a9f56f Mon Sep 17 00:00:00 2001 From: Jens Date: Sun, 12 Apr 2026 21:05:19 +0200 Subject: [PATCH 10/17] fix windows --- build/win32/CMakeLists.txt | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/build/win32/CMakeLists.txt b/build/win32/CMakeLists.txt index 1fbe029c91..dc6cdeec5c 100644 --- a/build/win32/CMakeLists.txt +++ b/build/win32/CMakeLists.txt @@ -192,10 +192,22 @@ endfunction() # unit tests file(GLOB unitTestSources ${BASE_DIR}/test/unit/*.cc) + +list(REMOVE_ITEM unitTestSources + ${BASE_DIR}/test/unit/json_backend_depth_tests.cc +) + add_executable(unit_tests ${unitTestSources} ${BASE_DIR}/test/common/custom_debug_log.cc) setTestTargetProperties(unit_tests) target_compile_options(unit_tests PRIVATE /wd4805) +add_executable(json_backend_depth_tests + ${BASE_DIR}/test/unit/json_backend_depth_tests.cc + ${BASE_DIR}/test/common/custom_debug_log.cc +) +setTestTargetProperties(json_backend_depth_tests) +target_compile_options(json_backend_depth_tests PRIVATE /wd4805) + # regression tests file(GLOB regressionTestsSources ${BASE_DIR}/test/regression/*.cc) add_executable(regression_tests ${regressionTestsSources} ${BASE_DIR}/test/common/custom_debug_log.cc) @@ -214,6 +226,12 @@ add_regression_test_capability(WITH_MAXMIND HAVE_MAXMIND) enable_testing() +add_test( + NAME json_backend_depth_tests + COMMAND json_backend_depth_tests + WORKING_DIRECTORY ${BASE_DIR}/test +) + file(READ ${BASE_DIR}/test/test-suite.in TEST_FILES_RAW) string(REPLACE "\n" ";" TEST_FILES ${TEST_FILES_RAW}) @@ -233,15 +251,25 @@ foreach(TEST_FILE ${TEST_FILES}) # test name get_filename_component(TEST_NAME ${TEST_FILE} NAME_WE) + # json_backend_depth_tests is built as a standalone executable, + # so skip automatic registration through unit_tests + if(TEST_NAME STREQUAL "json_backend_depth_tests") + continue() + endif() + # determine test runner based on test path prefix string(FIND ${TEST_FILE} "test-cases/regression/" is_regression_test) if(is_regression_test EQUAL 0) - set(TEST_RUNNER "regression_tests") + set(TEST_RUNNER "regression_tests") else() - set(TEST_RUNNER "unit_tests") + set(TEST_RUNNER "unit_tests") endif() - add_test(NAME ${TEST_NAME} COMMAND ${TEST_RUNNER} ${TEST_FILE} WORKING_DIRECTORY ${BASE_DIR}/test) + add_test( + NAME ${TEST_NAME} + COMMAND ${TEST_RUNNER} ${TEST_FILE} + WORKING_DIRECTORY ${BASE_DIR}/test + ) endif() endforeach() @@ -253,7 +281,6 @@ setTestTargetProperties(benchmark) add_executable(rules_optimization ${BASE_DIR}/test/optimization/optimization.cc) setTestTargetProperties(rules_optimization) - # examples # From a12f9f54746959264907bbfd0577d9835b8c5c10 Mon Sep 17 00:00:00 2001 From: Jens Date: Sun, 12 Apr 2026 21:24:53 +0200 Subject: [PATCH 11/17] sonarqubecloud error corrected --- src/request_body_processor/json.cc | 3 +-- src/request_body_processor/json_adapter.cc | 6 ++++-- src/request_body_processor/json_adapter.h | 6 ++++-- .../json_backend_jsoncons.cc | 7 +++++-- src/transaction.cc | 2 +- src/utils/json_writer.cc | 4 +--- test/benchmark/json_benchmark.cc | 4 ++-- test/benchmark/run-json-benchmarks.sh | 1 + test/regression/regression_test.cc | 21 +++++++++---------- test/run-json-backend-matrix.sh | 2 ++ test/unit/unit_test.cc | 2 +- 11 files changed, 32 insertions(+), 26 deletions(-) diff --git a/src/request_body_processor/json.cc b/src/request_body_processor/json.cc index f345276827..6f20dacb9e 100644 --- a/src/request_body_processor/json.cc +++ b/src/request_body_processor/json.cc @@ -57,8 +57,7 @@ JsonSinkStatus endContainer(std::deque *containers, delete container; if (containers->empty() == false) { - JSONContainerArray *array = dynamic_cast( - containers->back()); + auto *array = dynamic_cast(containers->back()); if (array != nullptr) { array->m_elementCounter++; } diff --git a/src/request_body_processor/json_adapter.cc b/src/request_body_processor/json_adapter.cc index 32d321f4be..55feaa280a 100644 --- a/src/request_body_processor/json_adapter.cc +++ b/src/request_body_processor/json_adapter.cc @@ -56,7 +56,8 @@ JsonParseResult normalizeResult(JsonParseResult result) { } // namespace JsonParseResult JSONAdapter::parse(std::string &input, - JsonEventSink *sink, const JsonBackendParseOptions &options) const { + JsonEventSink *sink, + const JsonBackendParseOptions &options [[maybe_unused]]) const { if (sink == nullptr) { return makeResult(JsonParseStatus::InternalError, JsonSinkStatus::InternalError, "JSON event sink is null."); @@ -78,7 +79,8 @@ JsonParseResult JSONAdapter::parse(std::string &input, } JsonParseResult JSONAdapter::parse(const std::string &input, - JsonEventSink *sink, const JsonBackendParseOptions &options) const { + JsonEventSink *sink, + const JsonBackendParseOptions &options [[maybe_unused]]) const { if (sink == nullptr) { return makeResult(JsonParseStatus::InternalError, JsonSinkStatus::InternalError, "JSON event sink is null."); diff --git a/src/request_body_processor/json_adapter.h b/src/request_body_processor/json_adapter.h index a260eb629b..6b452e6d39 100644 --- a/src/request_body_processor/json_adapter.h +++ b/src/request_body_processor/json_adapter.h @@ -25,10 +25,12 @@ namespace modsecurity::RequestBodyProcessor { class JSONAdapter { public: JsonParseResult parse(std::string &input, JsonEventSink *sink, - const JsonBackendParseOptions &options = JsonBackendParseOptions()) const; + const JsonBackendParseOptions &options [[maybe_unused]] + = JsonBackendParseOptions()) const; JsonParseResult parse(const std::string &input, JsonEventSink *sink, - const JsonBackendParseOptions &options = JsonBackendParseOptions()) const; + const JsonBackendParseOptions &options [[maybe_unused]] + = JsonBackendParseOptions()) const; }; } // namespace modsecurity::RequestBodyProcessor diff --git a/src/request_body_processor/json_backend_jsoncons.cc b/src/request_body_processor/json_backend_jsoncons.cc index 44399d4c22..2d8d9590d2 100644 --- a/src/request_body_processor/json_backend_jsoncons.cc +++ b/src/request_body_processor/json_backend_jsoncons.cc @@ -372,7 +372,8 @@ class RawJsonTokenCursor { (*offset)++; while (*offset < m_input.size()) { - char current = m_input[(*offset)++]; + char current = m_input[*offset]; + (*offset)++; if (current == '\\') { if (*offset >= m_input.size()) { if (detail != nullptr) { @@ -381,7 +382,9 @@ class RawJsonTokenCursor { return false; } - if (char escaped = m_input[(*offset)++]; escaped == 'u') { + char escaped = m_input[*offset]; + (*offset)++; + if (escaped == 'u') { for (int i = 0; i < 4; i++) { if (*offset >= m_input.size() || !isHexDigit(m_input[*offset])) { diff --git a/src/transaction.cc b/src/transaction.cc index 953115db88..935da02462 100644 --- a/src/transaction.cc +++ b/src/transaction.cc @@ -1601,7 +1601,7 @@ std::string Transaction::toJSON(int parts) { m_variableRequestHeaders.resolve(&l); for (auto &h : l) { std::string header_name = - utils::string::toHexIfNeeded(h->getKey().c_str()); + utils::string::toHexIfNeeded(h->getKey()); std::string header_value = utils::string::toHexIfNeeded(h->getValue()); addString(header_name, header_value); diff --git a/src/utils/json_writer.cc b/src/utils/json_writer.cc index dea528dc24..4cd7b1ba5d 100644 --- a/src/utils/json_writer.cc +++ b/src/utils/json_writer.cc @@ -21,9 +21,7 @@ namespace modsecurity::utils { JsonWriter::JsonWriter(bool pretty, std::string indent) - : m_output(), - m_stack(), - m_pretty(pretty), + : m_pretty(pretty), m_indent(std::move(indent)) { } void JsonWriter::start_object() { diff --git a/test/benchmark/json_benchmark.cc b/test/benchmark/json_benchmark.cc index e37f9cb412..abed905fc5 100644 --- a/test/benchmark/json_benchmark.cc +++ b/test/benchmark/json_benchmark.cc @@ -66,7 +66,7 @@ struct Metrics { unsigned long long parse_error_count{0}; }; -const char *usage_message = +const char *const usage_message = "Usage: json_benchmark --scenario NAME [--iterations N] " "[--target-bytes N] [--depth N] [--include-invalid] [--output json]"; @@ -322,7 +322,7 @@ Metrics runBenchmark(modsecurity::ModSecurity *modsec, "ModSecurity-json-benchmark/1.0"); transaction.addRequestHeader("Content-Type", "application/json"); const std::string content_length = std::to_string(body.size()); - transaction.addRequestHeader("Content-Length", content_length.c_str()); + transaction.addRequestHeader("Content-Length", content_length); transaction.processRequestHeaders(); const auto append_start = Clock::now(); diff --git a/test/benchmark/run-json-benchmarks.sh b/test/benchmark/run-json-benchmarks.sh index 1f87e5f791..6e50435879 100755 --- a/test/benchmark/run-json-benchmarks.sh +++ b/test/benchmark/run-json-benchmarks.sh @@ -6,6 +6,7 @@ usage() { cat <<'EOF' Usage: test/benchmark/run-json-benchmarks.sh --simdjson-build DIR --jsoncons-build DIR [--include-invalid] EOF + return } simdjson_build="" diff --git a/test/regression/regression_test.cc b/test/regression/regression_test.cc index d0661d7ff0..ab6a13f1c2 100644 --- a/test/regression/regression_test.cc +++ b/test/regression/regression_test.cc @@ -76,7 +76,7 @@ std::vector> json_object_to_map( std::string_view key; modsecurity_test::json::JsonValue child; - if (modsecurity_test::json::get(std::move(field_result), &field) + if (modsecurity_test::json::get(field_result, &field) == false) { continue; } @@ -216,7 +216,7 @@ std::unique_ptr RegressionTest::from_json_value( std::string_view key; modsecurity_test::json::JsonValue child; - if (modsecurity_test::json::get(std::move(field_result), &field) + if (modsecurity_test::json::get(field_result, &field) == false) { continue; } @@ -265,7 +265,7 @@ void RegressionTest::update_client_from_json_value( std::string_view key; modsecurity_test::json::JsonValue child; - if (modsecurity_test::json::get(std::move(field_result), &field) + if (modsecurity_test::json::get(field_result, &field) == false) { continue; } @@ -292,7 +292,7 @@ void RegressionTest::update_server_from_json_value( std::string_view key; modsecurity_test::json::JsonValue child; - if (modsecurity_test::json::get(std::move(field_result), &field) + if (modsecurity_test::json::get(field_result, &field) == false) { continue; } @@ -320,7 +320,7 @@ void RegressionTest::update_request_from_json_value( std::string_view key; modsecurity_test::json::JsonValue child; - if (modsecurity_test::json::get(std::move(field_result), &field) + if (modsecurity_test::json::get(field_result, &field) == false) { continue; } @@ -355,7 +355,7 @@ void RegressionTest::update_response_from_json_value( std::string_view key; modsecurity_test::json::JsonValue child; - if (modsecurity_test::json::get(std::move(field_result), &field) + if (modsecurity_test::json::get(field_result, &field) == false) { continue; } @@ -387,7 +387,7 @@ void RegressionTest::update_expected_from_json_value( std::string_view key; modsecurity_test::json::JsonValue child; - if (modsecurity_test::json::get(std::move(field_result), &field) + if (modsecurity_test::json::get(field_result, &field) == false) { continue; } @@ -493,14 +493,13 @@ std::unique_ptr RegressionTests::from_json_value( == false) { continue; } - tests->tests.emplace_back( - std::move(RegressionTest::from_json_value(test_value))); + tests->tests.emplace_back(RegressionTest::from_json_value(test_value)); } return tests; } if (type == modsecurity_test::json::JsonType::Object) { - tests->tests.emplace_back(std::move(RegressionTest::from_json_value(value))); + tests->tests.emplace_back(RegressionTest::from_json_value(value)); } return tests; @@ -520,7 +519,7 @@ std::string RegressionTests::toJSON() const { writer.key(key); writer.string(value); }; - const auto addStringIfNonEmpty = [&writer, &addString]( + const auto addStringIfNonEmpty = [&addString]( std::string_view key, const std::string &value) { if (value.empty() == false) { addString(key, value); diff --git a/test/run-json-backend-matrix.sh b/test/run-json-backend-matrix.sh index 4317999922..0a9c5f64d7 100755 --- a/test/run-json-backend-matrix.sh +++ b/test/run-json-backend-matrix.sh @@ -14,6 +14,7 @@ Exit codes: 13 backend result difference 64 invalid usage EOF + return } repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" @@ -76,6 +77,7 @@ extract_summary() { print backend "\t" m[2] "\t" m[3] "\t" m[1]; } ' "${input_log}" > "${output_tsv}" + return } run_backend() { diff --git a/test/unit/unit_test.cc b/test/unit/unit_test.cc index 8cfbb18738..82a7afbc6c 100644 --- a/test/unit/unit_test.cc +++ b/test/unit/unit_test.cc @@ -165,7 +165,7 @@ std::unique_ptr UnitTest::from_json_value( std::string_view key; modsecurity_test::json::JsonValue child; - if (modsecurity_test::json::get(std::move(field_result), &field) + if (modsecurity_test::json::get(field_result, &field) == false) { continue; } From 5c70617ddbc3c28ffc6242f18dc8e958ad62f14d Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 12 Apr 2026 21:48:23 +0200 Subject: [PATCH 12/17] Refactor JSONAdapter parse method to use parseImpl --- src/request_body_processor/json_adapter.cc | 39 +++++++++------------- 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/src/request_body_processor/json_adapter.cc b/src/request_body_processor/json_adapter.cc index 55feaa280a..4fcfcebcde 100644 --- a/src/request_body_processor/json_adapter.cc +++ b/src/request_body_processor/json_adapter.cc @@ -53,11 +53,11 @@ JsonParseResult normalizeResult(JsonParseResult result) { return result; } -} // namespace - -JsonParseResult JSONAdapter::parse(std::string &input, +template +JsonParseResult parseImpl(StringType &input, JsonEventSink *sink, - const JsonBackendParseOptions &options [[maybe_unused]]) const { + const JsonBackendParseOptions &options [[maybe_unused]], + const JSONAdapter *adapter) { if (sink == nullptr) { return makeResult(JsonParseStatus::InternalError, JsonSinkStatus::InternalError, "JSON event sink is null."); @@ -68,9 +68,9 @@ JsonParseResult JSONAdapter::parse(std::string &input, } #if defined(MSC_JSON_BACKEND_SIMDJSON) - return normalizeResult(parseDocumentWithSimdjson(input, sink, options)); + return normalizeResult(adapter->parseDocumentWithSimdjson(input, sink, options)); #elif defined(MSC_JSON_BACKEND_JSONCONS) - return normalizeResult(parseDocumentWithJsoncons(input, sink, options)); + return normalizeResult(adapter->parseDocumentWithJsoncons(input, sink, options)); #else return makeResult(JsonParseStatus::InternalError, JsonSinkStatus::InternalError, @@ -78,27 +78,18 @@ JsonParseResult JSONAdapter::parse(std::string &input, #endif } -JsonParseResult JSONAdapter::parse(const std::string &input, +} // namespace + +JsonParseResult JSONAdapter::parse(std::string &input, JsonEventSink *sink, const JsonBackendParseOptions &options [[maybe_unused]]) const { - if (sink == nullptr) { - return makeResult(JsonParseStatus::InternalError, - JsonSinkStatus::InternalError, "JSON event sink is null."); - } - - if (input.empty()) { - return makeResult(JsonParseStatus::Ok); - } + return parseImpl(input, sink, options, this); +} -#if defined(MSC_JSON_BACKEND_SIMDJSON) - return normalizeResult(parseDocumentWithSimdjson(input, sink, options)); -#elif defined(MSC_JSON_BACKEND_JSONCONS) - return normalizeResult(parseDocumentWithJsoncons(input, sink, options)); -#else - return makeResult(JsonParseStatus::InternalError, - JsonSinkStatus::InternalError, - "ModSecurity was built without a selected JSON backend."); -#endif +JsonParseResult JSONAdapter::parse(const std::string &input, + JsonEventSink *sink, + const JsonBackendParseOptions &options [[maybe_unused]]) const { + return parseImpl(input, sink, options, this); } } // namespace modsecurity::RequestBodyProcessor From 5a36522592d64d2c0f5245a1bd303dd01bde1369 Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 12 Apr 2026 21:53:08 +0200 Subject: [PATCH 13/17] Refactor JSONAdapter parse methods to remove adapter parameter --- src/request_body_processor/json_adapter.cc | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/request_body_processor/json_adapter.cc b/src/request_body_processor/json_adapter.cc index 4fcfcebcde..9aeb3cc78e 100644 --- a/src/request_body_processor/json_adapter.cc +++ b/src/request_body_processor/json_adapter.cc @@ -53,11 +53,11 @@ JsonParseResult normalizeResult(JsonParseResult result) { return result; } -template -JsonParseResult parseImpl(StringType &input, +} // namespace + +JsonParseResult JSONAdapter::parseImpl(const std::string &input, JsonEventSink *sink, - const JsonBackendParseOptions &options [[maybe_unused]], - const JSONAdapter *adapter) { + const JsonBackendParseOptions &options [[maybe_unused]]) const { if (sink == nullptr) { return makeResult(JsonParseStatus::InternalError, JsonSinkStatus::InternalError, "JSON event sink is null."); @@ -68,9 +68,9 @@ JsonParseResult parseImpl(StringType &input, } #if defined(MSC_JSON_BACKEND_SIMDJSON) - return normalizeResult(adapter->parseDocumentWithSimdjson(input, sink, options)); + return normalizeResult(parseDocumentWithSimdjson(input, sink, options)); #elif defined(MSC_JSON_BACKEND_JSONCONS) - return normalizeResult(adapter->parseDocumentWithJsoncons(input, sink, options)); + return normalizeResult(parseDocumentWithJsoncons(input, sink, options)); #else return makeResult(JsonParseStatus::InternalError, JsonSinkStatus::InternalError, @@ -78,18 +78,16 @@ JsonParseResult parseImpl(StringType &input, #endif } -} // namespace - JsonParseResult JSONAdapter::parse(std::string &input, JsonEventSink *sink, - const JsonBackendParseOptions &options [[maybe_unused]]) const { - return parseImpl(input, sink, options, this); + const JsonBackendParseOptions &options) const { + return parseImpl(input, sink, options); } JsonParseResult JSONAdapter::parse(const std::string &input, JsonEventSink *sink, - const JsonBackendParseOptions &options [[maybe_unused]]) const { - return parseImpl(input, sink, options, this); + const JsonBackendParseOptions &options) const { + return parseImpl(input, sink, options); } } // namespace modsecurity::RequestBodyProcessor From ba93c3a5e80b2821c6d9363343cac81e91d6ed15 Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 12 Apr 2026 21:55:19 +0200 Subject: [PATCH 14/17] Add parseImpl method to json_adapter.h --- src/request_body_processor/json_adapter.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/request_body_processor/json_adapter.h b/src/request_body_processor/json_adapter.h index 6b452e6d39..22a6e87cf6 100644 --- a/src/request_body_processor/json_adapter.h +++ b/src/request_body_processor/json_adapter.h @@ -31,6 +31,10 @@ class JSONAdapter { JsonParseResult parse(const std::string &input, JsonEventSink *sink, const JsonBackendParseOptions &options [[maybe_unused]] = JsonBackendParseOptions()) const; + + private: + JsonParseResult parseImpl(const std::string &input, JsonEventSink *sink, + const JsonBackendParseOptions &options [[maybe_unused]]) const; }; } // namespace modsecurity::RequestBodyProcessor From 7284178cd179e8e19a322152fe2611cf311c6b5c Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 12 Apr 2026 22:09:03 +0200 Subject: [PATCH 15/17] Refactor JSON field handling in regression tests Refactor JSON field processing by introducing a reusable for_each_json_field function. This change simplifies the code in multiple update functions by eliminating redundant logic. --- test/regression/regression_test.cc | 187 +++++++++-------------------- 1 file changed, 55 insertions(+), 132 deletions(-) diff --git a/test/regression/regression_test.cc b/test/regression/regression_test.cc index ab6a13f1c2..04119c5ea1 100644 --- a/test/regression/regression_test.cc +++ b/test/regression/regression_test.cc @@ -92,6 +92,32 @@ std::vector> json_object_to_map( return values; } +template +void for_each_json_field(modsecurity_test::json::JsonValue value, + Callback callback) { + modsecurity_test::json::JsonObject object; + + if (modsecurity_test::json::get(value.get_object(), &object) == false) { + return; + } + + for (auto field_result : object) { + modsecurity_test::json::JsonField field; + std::string_view key; + modsecurity_test::json::JsonValue child; + + if (modsecurity_test::json::get(field_result, &field) == false) { + continue; + } + if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { + continue; + } + + child = field.value(); + callback(key, child); + } +} + void set_int_from_json(int &dest, std::string_view want_key, std::string_view key, modsecurity_test::json::JsonValue value) { if (key == want_key) { @@ -204,27 +230,10 @@ std::unique_ptr RegressionTest::from_json_document( std::unique_ptr RegressionTest::from_json_value( modsecurity_test::json::JsonValue value) { - modsecurity_test::json::JsonObject object; auto test = make_empty_regression_test(); - if (modsecurity_test::json::get(value.get_object(), &object) == false) { - return test; - } - - for (auto field_result : object) { - modsecurity_test::json::JsonField field; - std::string_view key; - modsecurity_test::json::JsonValue child; - - if (modsecurity_test::json::get(field_result, &field) - == false) { - continue; - } - if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { - continue; - } - child = field.value(); - + for_each_json_field(value, [&test](std::string_view key, + modsecurity_test::json::JsonValue child) { set_int_from_json(test->enabled, "enabled", key, child); set_int_from_json(test->version_min, "version_min", key, child); set_opt_int_from_json(test->version_max, "version_max", key, child); @@ -246,7 +255,7 @@ std::unique_ptr RegressionTest::from_json_value( } else if (key == "rules") { test->update_rules_from_json_value(child); } - } + }); test->name = test->title; return test; @@ -254,81 +263,27 @@ std::unique_ptr RegressionTest::from_json_value( void RegressionTest::update_client_from_json_value( modsecurity_test::json::JsonValue value) { - modsecurity_test::json::JsonObject object; - - if (modsecurity_test::json::get(value.get_object(), &object) == false) { - return; - } - - for (auto field_result : object) { - modsecurity_test::json::JsonField field; - std::string_view key; - modsecurity_test::json::JsonValue child; - - if (modsecurity_test::json::get(field_result, &field) - == false) { - continue; - } - if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { - continue; - } - child = field.value(); - + for_each_json_field(value, [this](std::string_view key, + modsecurity_test::json::JsonValue child) { set_string_from_json(clientIp, "ip", key, child); set_int_from_json(clientPort, "port", key, child); - } + }); } void RegressionTest::update_server_from_json_value( modsecurity_test::json::JsonValue value) { - modsecurity_test::json::JsonObject object; - - if (modsecurity_test::json::get(value.get_object(), &object) == false) { - return; - } - - for (auto field_result : object) { - modsecurity_test::json::JsonField field; - std::string_view key; - modsecurity_test::json::JsonValue child; - - if (modsecurity_test::json::get(field_result, &field) - == false) { - continue; - } - if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { - continue; - } - child = field.value(); - + for_each_json_field(value, [this](std::string_view key, + modsecurity_test::json::JsonValue child) { set_string_from_json(serverIp, "ip", key, child); set_int_from_json(serverPort, "port", key, child); set_string_from_json(hostname, "hostname", key, child); - } + }); } void RegressionTest::update_request_from_json_value( modsecurity_test::json::JsonValue value) { - modsecurity_test::json::JsonObject object; - - if (modsecurity_test::json::get(value.get_object(), &object) == false) { - return; - } - - for (auto field_result : object) { - modsecurity_test::json::JsonField field; - std::string_view key; - modsecurity_test::json::JsonValue child; - - if (modsecurity_test::json::get(field_result, &field) - == false) { - continue; - } - if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { - continue; - } - child = field.value(); - + for_each_json_field(value, [this](std::string_view key, + modsecurity_test::json::JsonValue child) { set_string_from_json(uri, "uri", key, child); set_string_from_json(method, "method", key, child); if (key == "http_version") { @@ -339,31 +294,13 @@ void RegressionTest::update_request_from_json_value( request_body_lines = json_array_to_vec_string(child); request_body = join_strings(request_body_lines); } - } + }); } void RegressionTest::update_response_from_json_value( modsecurity_test::json::JsonValue value) { - modsecurity_test::json::JsonObject object; - - if (modsecurity_test::json::get(value.get_object(), &object) == false) { - return; - } - - for (auto field_result : object) { - modsecurity_test::json::JsonField field; - std::string_view key; - modsecurity_test::json::JsonValue child; - - if (modsecurity_test::json::get(field_result, &field) - == false) { - continue; - } - if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { - continue; - } - child = field.value(); - + for_each_json_field(value, [this](std::string_view key, + modsecurity_test::json::JsonValue child) { if (key == "headers") { response_headers = json_object_to_map(child); } else if (key == "body") { @@ -371,38 +308,20 @@ void RegressionTest::update_response_from_json_value( response_body = join_strings(response_body_lines); } set_string_from_json(response_protocol, "protocol", key, child); - } + }); } void RegressionTest::update_expected_from_json_value( modsecurity_test::json::JsonValue value) { - modsecurity_test::json::JsonObject object; - - if (modsecurity_test::json::get(value.get_object(), &object) == false) { - return; - } - - for (auto field_result : object) { - modsecurity_test::json::JsonField field; - std::string_view key; - modsecurity_test::json::JsonValue child; - - if (modsecurity_test::json::get(field_result, &field) - == false) { - continue; - } - if (modsecurity_test::json::get(field.unescaped_key(), &key) == false) { - continue; - } - child = field.value(); - + for_each_json_field(value, [this](std::string_view key, + modsecurity_test::json::JsonValue child) { set_string_from_json(audit_log, "audit_log", key, child); set_string_from_json(debug_log, "debug_log", key, child); set_string_from_json(error_log, "error_log", key, child); set_int_from_json(http_code, "http_code", key, child); set_string_from_json(redirect_url, "redirect_url", key, child); set_string_from_json(parser_error, "parser_error", key, child); - } + }); } void RegressionTest::update_rules_from_json_value( @@ -417,7 +336,6 @@ void RegressionTest::update_rules_from_json_value( rules = stream.str(); } - constexpr char ascii_tolower(char c) { return 'A' <= c && c <= 'Z' ? (c + ('a' - 'A')) : c; } @@ -430,15 +348,18 @@ bool iequals_ascii(std::string_view a, std::string_view b) { }); } -static bool has_chunked_header(const std::vector> &headers) { +static bool has_chunked_header( + const std::vector> &headers) { return std::any_of(std::begin(headers), std::end(headers), [](const auto &header) { const auto &[name, value]{header}; - return iequals_ascii(name, "Transfer-Encoding") && iequals_ascii(value, "chunked"); + return iequals_ascii(name, "Transfer-Encoding") + && iequals_ascii(value, "chunked"); }); } -static void update_content_length(std::vector> &headers, size_t length) { +static void update_content_length( + std::vector> &headers, size_t length) { if (has_chunked_header(headers)) { return; } @@ -451,7 +372,8 @@ static void update_content_length(std::vector RegressionTests::from_json_value( == false) { continue; } - tests->tests.emplace_back(RegressionTest::from_json_value(test_value)); + tests->tests.emplace_back( + RegressionTest::from_json_value(test_value)); } return tests; } @@ -506,7 +429,7 @@ std::unique_ptr RegressionTests::from_json_value( } void RegressionTests::update_content_lengths() { - for (auto & test : tests) { + for (auto &test : tests) { test->update_content_lengths(); } } From 80e8abecd5893c5f71abb8d47df881133ff6a7f6 Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 12 Apr 2026 22:13:25 +0200 Subject: [PATCH 16/17] Refactor parsing functions for improved validation --- test/benchmark/json_benchmark.cc | 436 ++++++++++++++++++++++++++++++- 1 file changed, 434 insertions(+), 2 deletions(-) diff --git a/test/benchmark/json_benchmark.cc b/test/benchmark/json_benchmark.cc index abed905fc5..787587bfb4 100644 --- a/test/benchmark/json_benchmark.cc +++ b/test/benchmark/json_benchmark.cc @@ -90,11 +90,443 @@ std::uint64_t elapsedNanos(Clock::time_point start_time) { Clock::now() - start_time).count()); } -std::size_t parseSize(const char *value, const char *flag_name) { +unsigned long long parseUnsignedLongLong(const char *value, + const char *flag_name, bool allow_zero) { errno = 0; char *end = nullptr; const unsigned long long parsed = std::strtoull(value, &end, 10); - if (errno != 0 || end == value || *end != '\0') { + if (errno != 0 || end == value || *end != '\0' + || (!allow_zero && parsed == 0)) { + throw std::runtime_error(std::string("invalid numeric value for ") + + flag_name + ": " + value); + } + return parsed; +} + +std::size_t parseSize(const char *value, const char *flag_name) { + const unsigned long long parsed = + parseUnsignedLongLong(value, flag_name, true); + if (parsed > std::numeric_limits::max()) { + throw std::runtime_error(std::string("value too large for ") + + flag_name + ": " + value); + } + return static_cast(parsed); +} + +unsigned long long parseIterations(const char *value) { + return parseUnsignedLongLong(value, "--iterations", false); +} + +Options parseOptions(int argc, const char *argv[]) { + Options options; + + for (int i = 1; i < argc; i++) { + const std::string current(argv[i]); + if (current == "-h" || current == "-?" || current == "--help") { + std::cout << usage_message << std::endl; + std::exit(0); + } else if (current == "--scenario") { + if (i + 1 >= argc) { + throw std::runtime_error("missing value for --scenario"); + } + options.scenario.assign(argv[++i]); + } else if (current == "--iterations") { + if (i + 1 >= argc) { + throw std::runtime_error("missing value for --iterations"); + } + options.iterations = parseIterations(argv[++i]); + } else if (current == "--target-bytes") { + if (i + 1 >= argc) { + throw std::runtime_error("missing value for --target-bytes"); + } + options.target_bytes = parseSize(argv[++i], "--target-bytes"); + } else if (current == "--depth") { + if (i + 1 >= argc) { + throw std::runtime_error("missing value for --depth"); + } + options.depth = parseSize(argv[++i], "--depth"); + } else if (current == "--include-invalid") { + options.include_invalid = true; + } else if (current == "--output") { + if (i + 1 >= argc) { + throw std::runtime_error("missing value for --output"); + } + if (const std::string output_format(argv[++i]); + output_format != "json") { + throw std::runtime_error("unsupported output format: " + + output_format); + } + options.output_json = true; + } else { + throw std::runtime_error("unknown option: " + current); + } + } + + if (options.scenario.empty()) { + throw std::runtime_error("missing required --scenario"); + } + + if (const bool is_invalid_scenario = options.scenario == "truncated" + || options.scenario == "malformed"; + is_invalid_scenario && !options.include_invalid) { + throw std::runtime_error( + "invalid JSON scenarios require --include-invalid"); + } + + return options; +} + +std::string makeLargeObject(std::size_t target_bytes) { + std::string body("{"); + std::size_t index = 0; + + while (body.size() + 32 < target_bytes || index == 0) { + if (index > 0) { + body.push_back(','); + } + body += "\"key"; + body += std::to_string(index); + body += "\":\"value"; + body += std::to_string(index); + body += "\""; + index++; + } + + body.push_back('}'); + return body; +} + +std::string makeUtf8Object(std::size_t target_bytes) { + static const std::array utf8_values{{ + u8"Gr\u00fc\u00dfe", + u8"\u3053\u3093\u306b\u3061\u306f", + u8"\u043f\u0440\u0438\u0432\u0435\u0442", + u8"\u0645\u0631\u062d\u0628\u0627", + u8"\U0001F30D" + }}; + + std::string body("{"); + std::size_t index = 0; + + while (body.size() + 48 < target_bytes || index == 0) { + if (index > 0) { + body.push_back(','); + } + body += "\"utf8_"; + body += std::to_string(index); + body += "\":\""; + body += utf8_values[index % utf8_values.size()]; + body += "\""; + index++; + } + + body.push_back('}'); + return body; +} + +std::string makeNumbersArray(std::size_t target_bytes) { + static const std::array numeric_tokens{{ + "0", + "-0", + "1.0", + "1e3", + "-1.25e-4", + "123456789012345678901234567890", + "6.02214076e23", + "3.141592653589793238462643383279" + }}; + + std::string body("["); + std::size_t index = 0; + + while (body.size() + 40 < target_bytes || index == 0) { + if (index > 0) { + body.push_back(','); + } + body += numeric_tokens[index % numeric_tokens.size()]; + index++; + } + + body.push_back(']'); + return body; +} + +std::string makeDeepNesting(std::size_t depth) { + std::string body; + + for (std::size_t i = 0; i < depth; i++) { + if ((i % 2) == 0) { + body += "{\"k\":"; + } else { + body.push_back('['); + } + } + + body += "\"leaf\""; + + for (std::size_t i = depth; i > 0; i--) { + if (((i - 1) % 2) == 0) { + body.push_back('}'); + } else { + body.push_back(']'); + } + } + + return body; +} + +std::string buildScenarioBody(const Options &options) { + if (options.scenario == "large-object") { + return makeLargeObject(options.target_bytes); + } + if (options.scenario == "deep-nesting") { + return makeDeepNesting(options.depth); + } + if (options.scenario == "numbers") { + return makeNumbersArray(options.target_bytes); + } + if (options.scenario == "utf8") { + return makeUtf8Object(options.target_bytes); + } + if (options.scenario == "truncated") { + std::string body = makeLargeObject(options.target_bytes); + body.pop_back(); + return body; + } + if (options.scenario == "malformed") { + std::string body = makeLargeObject(options.target_bytes); + body.insert(body.size() - 1, ",]"); + return body; + } + + throw std::runtime_error("unsupported scenario: " + options.scenario); +} + +bool isResolvedZero(const std::unique_ptr &value) { + return value && *value == "0"; +} + +Metrics runBenchmark(modsecurity::ModSecurity *modsec, + modsecurity::RulesSet *rules, const std::string &body, + const Options &options) { + Metrics metrics; + + for (unsigned long long iteration = 0; iteration < options.iterations; + iteration++) { + const auto total_start = Clock::now(); + modsecurity::Transaction transaction(modsec, rules, nullptr); + transaction.processConnection("200.249.12.31", 12345, + "127.0.0.1", 80); + transaction.processURI("/json-benchmark", "POST", "1.1"); + transaction.addRequestHeader("Host", "localhost"); + transaction.addRequestHeader("User-Agent", + "ModSecurity-json-benchmark/1.0"); + transaction.addRequestHeader("Content-Type", "application/json"); + const std::string content_length = std::to_string(body.size()); + transaction.addRequestHeader("Content-Length", content_length); + transaction.processRequestHeaders(); + + const auto append_start = Clock::now(); + const int append_ok = transaction.appendRequestBody( + reinterpret_cast(body.data()), body.size()); + metrics.append_request_body_ns += elapsedNanos(append_start); + if (append_ok == 0) { + throw std::runtime_error( + "appendRequestBody reported partial body processing"); + } + + const auto process_start = Clock::now(); + if (!transaction.processRequestBody()) { + throw std::runtime_error("processRequestBody returned false"); + } + metrics.process_request_body_ns += elapsedNanos(process_start); + metrics.total_transaction_ns += elapsedNanos(total_start); + + const std::unique_ptr reqbody_error = + transaction.m_variableReqbodyError.resolveFirst(); + const std::unique_ptr processor_error = + transaction.m_variableReqbodyProcessorError.resolveFirst(); + + if (!reqbody_error || !processor_error) { + throw std::runtime_error( + "unable to resolve JSON parse outcome variables"); + } + + const bool parse_success = isResolvedZero(reqbody_error) + && isResolvedZero(processor_error); + if (const bool parse_error = !isResolvedZero(reqbody_error) + || !isResolvedZero(processor_error); + parse_success == parse_error) { + throw std::runtime_error( + "ambiguous JSON parse outcome observed in benchmark"); + } + + if (parse_success) { + metrics.parse_success_count++; + } else { + metrics.parse_error_count++; + } + } + + return metrics; +} + +long currentMaxRssKb() { + struct rusage usage; + if (getrusage(RUSAGE_SELF, &usage) != 0) { + return -1; + } + return usage.ru_maxrss; +} + +void printJsonStringField(const char *name, const std::string &value, + bool &first) { + if (!first) { + std::cout << ","; + } + std::cout << "\"" << name << "\":\"" << value << "\""; + first = false; +} + +template +void printJsonNumericField(const char *name, T value, bool &first) { + if (!first) { + std::cout << ","; + } + std::cout << "\"" << name << "\":" << value; + first = false; +} + +void printHumanField(const char *name, const std::string &value) { + std::cout << name << ": " << value << "\n"; +} + +template +void printHumanField(const char *name, T value) { + std::cout << name << ": " << value << "\n"; +} + +void printJson(const Options &options, const std::string &body, + const Metrics &metrics) { + bool first = true; + + std::cout << "{"; + printJsonStringField("backend", benchmarkBackend(), first); + printJsonStringField("scenario", options.scenario, first); + printJsonNumericField("iterations", options.iterations, first); + printJsonNumericField("body_bytes", body.size(), first); + printJsonNumericField("append_request_body_ns", + metrics.append_request_body_ns, first); + printJsonNumericField("process_request_body_ns", + metrics.process_request_body_ns, first); + printJsonNumericField("total_transaction_ns", + metrics.total_transaction_ns, first); + printJsonNumericField("parse_success_count", + metrics.parse_success_count, first); + printJsonNumericField("parse_error_count", + metrics.parse_error_count, first); + printJsonNumericField("ru_maxrss_kb", currentMaxRssKb(), first); + +#ifdef MSC_JSON_AUDIT_INSTRUMENTATION + const modsecurity::RequestBodyProcessor::JsonInstrumentationMetrics + instrumentation = + modsecurity::RequestBodyProcessor::jsonInstrumentationSnapshot(); + + printJsonNumericField("request_body_snapshot_count", + instrumentation.request_body_snapshot_count, first); + printJsonNumericField("request_body_snapshot_bytes", + instrumentation.request_body_snapshot_bytes, first); + printJsonNumericField("request_body_snapshot_ns", + instrumentation.request_body_snapshot_ns, first); + printJsonNumericField("json_process_chunk_calls", + instrumentation.json_process_chunk_calls, first); + printJsonNumericField("json_process_chunk_appended_bytes", + instrumentation.json_process_chunk_appended_bytes, first); + printJsonNumericField("json_process_chunk_ns", + instrumentation.json_process_chunk_ns, first); + printJsonNumericField("simdjson_parser_constructions", + instrumentation.simdjson_parser_constructions, first); + printJsonNumericField("simdjson_parser_construction_ns", + instrumentation.simdjson_parser_construction_ns, first); + printJsonNumericField("simdjson_padded_copy_bytes", + instrumentation.simdjson_padded_copy_bytes, first); + printJsonNumericField("simdjson_padded_copy_ns", + instrumentation.simdjson_padded_copy_ns, first); + printJsonNumericField("simdjson_iterate_ns", + instrumentation.simdjson_iterate_ns, first); + printJsonNumericField("jsoncons_cursor_constructions", + instrumentation.jsoncons_cursor_constructions, first); + printJsonNumericField("jsoncons_cursor_init_ns", + instrumentation.jsoncons_cursor_init_ns, first); + printJsonNumericField("jsoncons_token_cursor_constructions", + instrumentation.jsoncons_token_cursor_constructions, first); + printJsonNumericField("jsoncons_token_cursor_init_ns", + instrumentation.jsoncons_token_cursor_init_ns, first); + printJsonNumericField("jsoncons_event_loop_ns", + instrumentation.jsoncons_event_loop_ns, first); + printJsonNumericField("jsoncons_token_sync_steps", + instrumentation.jsoncons_token_sync_steps, first); + printJsonNumericField("jsoncons_token_exact_advance_steps", + instrumentation.jsoncons_token_exact_advance_steps, first); +#endif + + std::cout << "}" << std::endl; +} + +void printHumanReadable(const Options &options, const std::string &body, + const Metrics &metrics) { + printHumanField("backend", benchmarkBackend()); + printHumanField("scenario", options.scenario); + printHumanField("iterations", options.iterations); + printHumanField("body_bytes", body.size()); + printHumanField("append_request_body_ns", + metrics.append_request_body_ns); + printHumanField("process_request_body_ns", + metrics.process_request_body_ns); + printHumanField("total_transaction_ns", + metrics.total_transaction_ns); + printHumanField("parse_success_count", + metrics.parse_success_count); + printHumanField("parse_error_count", + metrics.parse_error_count); + printHumanField("ru_maxrss_kb", currentMaxRssKb()); +} + +} // namespace + +int main(int argc, const char *argv[]) { + try { + const Options options = parseOptions(argc, argv); + const std::string body = buildScenarioBody(options); + + modsecurity::ModSecurity modsec; + modsec.setConnectorInformation( + "ModSecurity-json-benchmark v0.0.1-alpha"); + + modsecurity::RulesSet rules; + if (const std::string rules_path = rulesFilePath(); + rules.loadFromUri(rules_path.c_str()) < 0) { + std::cerr << "failed to load benchmark rules from " + << rules_path << std::endl; + std::cerr << rules.m_parserError.str() << std::endl; + return 1; + } + + modsecurity::RequestBodyProcessor::jsonInstrumentationReset(); + const Metrics metrics = runBenchmark(&modsec, &rules, body, options); + + if (options.output_json) { + printJson(options, body, metrics); + } else { + printHumanReadable(options, body, metrics); + } + return 0; + } catch (const std::exception &error) { + std::cerr << error.what() << std::endl; + std::cerr << usage_message << std::endl; + return 64; + } +} if (errno != 0 || end == value || *end != '\0') { throw std::runtime_error(std::string("invalid numeric value for ") + flag_name + ": " + value); } From 5dd7b3539977de85f0a2aebd2cb28b9ea1640211 Mon Sep 17 00:00:00 2001 From: Easton97-Jens <66330090+Easton97-Jens@users.noreply.github.com> Date: Sun, 12 Apr 2026 22:21:54 +0200 Subject: [PATCH 17/17] Cleanup: Remove unused parsing functions Removed unused functions related to parsing and scenario building in json_benchmark.cc. --- test/benchmark/json_benchmark.cc | 399 ------------------------------- 1 file changed, 399 deletions(-) diff --git a/test/benchmark/json_benchmark.cc b/test/benchmark/json_benchmark.cc index 787587bfb4..e8e62398f2 100644 --- a/test/benchmark/json_benchmark.cc +++ b/test/benchmark/json_benchmark.cc @@ -494,405 +494,6 @@ void printHumanReadable(const Options &options, const std::string &body, } // namespace -int main(int argc, const char *argv[]) { - try { - const Options options = parseOptions(argc, argv); - const std::string body = buildScenarioBody(options); - - modsecurity::ModSecurity modsec; - modsec.setConnectorInformation( - "ModSecurity-json-benchmark v0.0.1-alpha"); - - modsecurity::RulesSet rules; - if (const std::string rules_path = rulesFilePath(); - rules.loadFromUri(rules_path.c_str()) < 0) { - std::cerr << "failed to load benchmark rules from " - << rules_path << std::endl; - std::cerr << rules.m_parserError.str() << std::endl; - return 1; - } - - modsecurity::RequestBodyProcessor::jsonInstrumentationReset(); - const Metrics metrics = runBenchmark(&modsec, &rules, body, options); - - if (options.output_json) { - printJson(options, body, metrics); - } else { - printHumanReadable(options, body, metrics); - } - return 0; - } catch (const std::exception &error) { - std::cerr << error.what() << std::endl; - std::cerr << usage_message << std::endl; - return 64; - } -} if (errno != 0 || end == value || *end != '\0') { - throw std::runtime_error(std::string("invalid numeric value for ") - + flag_name + ": " + value); - } - if (parsed > std::numeric_limits::max()) { - throw std::runtime_error(std::string("value too large for ") - + flag_name + ": " + value); - } - return static_cast(parsed); -} - -unsigned long long parseIterations(const char *value) { - errno = 0; - char *end = nullptr; - const unsigned long long parsed = std::strtoull(value, &end, 10); - if (errno != 0 || end == value || *end != '\0' || parsed == 0) { - throw std::runtime_error(std::string("invalid numeric value for --iterations: ") - + value); - } - return parsed; -} - -Options parseOptions(int argc, const char *argv[]) { - Options options; - - for (int i = 1; i < argc; i++) { - const std::string current(argv[i]); - if (current == "-h" || current == "-?" || current == "--help") { - std::cout << usage_message << std::endl; - std::exit(0); - } else if (current == "--scenario") { - if (i + 1 >= argc) { - throw std::runtime_error("missing value for --scenario"); - } - options.scenario.assign(argv[++i]); - } else if (current == "--iterations") { - if (i + 1 >= argc) { - throw std::runtime_error("missing value for --iterations"); - } - options.iterations = parseIterations(argv[++i]); - } else if (current == "--target-bytes") { - if (i + 1 >= argc) { - throw std::runtime_error("missing value for --target-bytes"); - } - options.target_bytes = parseSize(argv[++i], "--target-bytes"); - } else if (current == "--depth") { - if (i + 1 >= argc) { - throw std::runtime_error("missing value for --depth"); - } - options.depth = parseSize(argv[++i], "--depth"); - } else if (current == "--include-invalid") { - options.include_invalid = true; - } else if (current == "--output") { - if (i + 1 >= argc) { - throw std::runtime_error("missing value for --output"); - } - if (const std::string output_format(argv[++i]); - output_format != "json") { - throw std::runtime_error("unsupported output format: " - + output_format); - } - options.output_json = true; - } else { - throw std::runtime_error("unknown option: " + current); - } - } - - if (options.scenario.empty()) { - throw std::runtime_error("missing required --scenario"); - } - - if (const bool is_invalid_scenario = options.scenario == "truncated" - || options.scenario == "malformed"; - is_invalid_scenario && !options.include_invalid) { - throw std::runtime_error( - "invalid JSON scenarios require --include-invalid"); - } - - return options; -} - -std::string makeLargeObject(std::size_t target_bytes) { - std::string body("{"); - std::size_t index = 0; - - while (body.size() + 32 < target_bytes || index == 0) { - if (index > 0) { - body.push_back(','); - } - body += "\"key"; - body += std::to_string(index); - body += "\":\"value"; - body += std::to_string(index); - body += "\""; - index++; - } - - body.push_back('}'); - return body; -} - -std::string makeUtf8Object(std::size_t target_bytes) { - static const std::array utf8_values{{ - u8"Gr\u00fc\u00dfe", - u8"\u3053\u3093\u306b\u3061\u306f", - u8"\u043f\u0440\u0438\u0432\u0435\u0442", - u8"\u0645\u0631\u062d\u0628\u0627", - u8"\U0001F30D" - }}; - - std::string body("{"); - std::size_t index = 0; - - while (body.size() + 48 < target_bytes || index == 0) { - if (index > 0) { - body.push_back(','); - } - body += "\"utf8_"; - body += std::to_string(index); - body += "\":\""; - body += utf8_values[index % utf8_values.size()]; - body += "\""; - index++; - } - - body.push_back('}'); - return body; -} - -std::string makeNumbersArray(std::size_t target_bytes) { - static const std::array numeric_tokens{{ - "0", - "-0", - "1.0", - "1e3", - "-1.25e-4", - "123456789012345678901234567890", - "6.02214076e23", - "3.141592653589793238462643383279" - }}; - - std::string body("["); - std::size_t index = 0; - - while (body.size() + 40 < target_bytes || index == 0) { - if (index > 0) { - body.push_back(','); - } - body += numeric_tokens[index % numeric_tokens.size()]; - index++; - } - - body.push_back(']'); - return body; -} - -std::string makeDeepNesting(std::size_t depth) { - std::string body; - - for (std::size_t i = 0; i < depth; i++) { - if ((i % 2) == 0) { - body += "{\"k\":"; - } else { - body.push_back('['); - } - } - - body += "\"leaf\""; - - for (std::size_t i = depth; i > 0; i--) { - if (((i - 1) % 2) == 0) { - body.push_back('}'); - } else { - body.push_back(']'); - } - } - - return body; -} - -std::string buildScenarioBody(const Options &options) { - if (options.scenario == "large-object") { - return makeLargeObject(options.target_bytes); - } - if (options.scenario == "deep-nesting") { - return makeDeepNesting(options.depth); - } - if (options.scenario == "numbers") { - return makeNumbersArray(options.target_bytes); - } - if (options.scenario == "utf8") { - return makeUtf8Object(options.target_bytes); - } - if (options.scenario == "truncated") { - std::string body = makeLargeObject(options.target_bytes); - body.pop_back(); - return body; - } - if (options.scenario == "malformed") { - std::string body = makeLargeObject(options.target_bytes); - body.insert(body.size() - 1, ",]"); - return body; - } - - throw std::runtime_error("unsupported scenario: " + options.scenario); -} - -bool isResolvedZero(const std::unique_ptr &value) { - return value && *value == "0"; -} - -Metrics runBenchmark(modsecurity::ModSecurity *modsec, - modsecurity::RulesSet *rules, const std::string &body, - const Options &options) { - Metrics metrics; - - for (unsigned long long iteration = 0; iteration < options.iterations; - iteration++) { - const auto total_start = Clock::now(); - modsecurity::Transaction transaction(modsec, rules, nullptr); - transaction.processConnection("200.249.12.31", 12345, - "127.0.0.1", 80); - transaction.processURI("/json-benchmark", "POST", "1.1"); - transaction.addRequestHeader("Host", "localhost"); - transaction.addRequestHeader("User-Agent", - "ModSecurity-json-benchmark/1.0"); - transaction.addRequestHeader("Content-Type", "application/json"); - const std::string content_length = std::to_string(body.size()); - transaction.addRequestHeader("Content-Length", content_length); - transaction.processRequestHeaders(); - - const auto append_start = Clock::now(); - const int append_ok = transaction.appendRequestBody( - reinterpret_cast(body.data()), body.size()); - metrics.append_request_body_ns += elapsedNanos(append_start); - if (append_ok == 0) { - throw std::runtime_error( - "appendRequestBody reported partial body processing"); - } - - const auto process_start = Clock::now(); - if (!transaction.processRequestBody()) { - throw std::runtime_error("processRequestBody returned false"); - } - metrics.process_request_body_ns += elapsedNanos(process_start); - metrics.total_transaction_ns += elapsedNanos(total_start); - - const std::unique_ptr reqbody_error = - transaction.m_variableReqbodyError.resolveFirst(); - const std::unique_ptr processor_error = - transaction.m_variableReqbodyProcessorError.resolveFirst(); - - if (!reqbody_error || !processor_error) { - throw std::runtime_error( - "unable to resolve JSON parse outcome variables"); - } - - const bool parse_success = isResolvedZero(reqbody_error) - && isResolvedZero(processor_error); - if (const bool parse_error = !isResolvedZero(reqbody_error) - || !isResolvedZero(processor_error); - parse_success == parse_error) { - throw std::runtime_error( - "ambiguous JSON parse outcome observed in benchmark"); - } - - if (parse_success) { - metrics.parse_success_count++; - } else { - metrics.parse_error_count++; - } - } - - return metrics; -} - -long currentMaxRssKb() { - struct rusage usage; - if (getrusage(RUSAGE_SELF, &usage) != 0) { - return -1; - } - return usage.ru_maxrss; -} - -void printJson(const Options &options, const std::string &body, - const Metrics &metrics) { - std::cout << "{"; - std::cout << R"("backend":")" << benchmarkBackend() << "\","; - std::cout << R"("scenario":")" << options.scenario << "\","; - std::cout << "\"iterations\":" << options.iterations << ","; - std::cout << "\"body_bytes\":" << body.size() << ","; - std::cout << "\"append_request_body_ns\":" - << metrics.append_request_body_ns << ","; - std::cout << "\"process_request_body_ns\":" - << metrics.process_request_body_ns << ","; - std::cout << "\"total_transaction_ns\":" - << metrics.total_transaction_ns << ","; - std::cout << "\"parse_success_count\":" - << metrics.parse_success_count << ","; - std::cout << "\"parse_error_count\":" - << metrics.parse_error_count << ","; - std::cout << "\"ru_maxrss_kb\":" << currentMaxRssKb(); -#ifdef MSC_JSON_AUDIT_INSTRUMENTATION - const modsecurity::RequestBodyProcessor::JsonInstrumentationMetrics - instrumentation = - modsecurity::RequestBodyProcessor::jsonInstrumentationSnapshot(); - std::cout << ",\"request_body_snapshot_count\":" - << instrumentation.request_body_snapshot_count; - std::cout << ",\"request_body_snapshot_bytes\":" - << instrumentation.request_body_snapshot_bytes; - std::cout << ",\"request_body_snapshot_ns\":" - << instrumentation.request_body_snapshot_ns; - std::cout << ",\"json_process_chunk_calls\":" - << instrumentation.json_process_chunk_calls; - std::cout << ",\"json_process_chunk_appended_bytes\":" - << instrumentation.json_process_chunk_appended_bytes; - std::cout << ",\"json_process_chunk_ns\":" - << instrumentation.json_process_chunk_ns; - std::cout << ",\"simdjson_parser_constructions\":" - << instrumentation.simdjson_parser_constructions; - std::cout << ",\"simdjson_parser_construction_ns\":" - << instrumentation.simdjson_parser_construction_ns; - std::cout << ",\"simdjson_padded_copy_bytes\":" - << instrumentation.simdjson_padded_copy_bytes; - std::cout << ",\"simdjson_padded_copy_ns\":" - << instrumentation.simdjson_padded_copy_ns; - std::cout << ",\"simdjson_iterate_ns\":" - << instrumentation.simdjson_iterate_ns; - std::cout << ",\"jsoncons_cursor_constructions\":" - << instrumentation.jsoncons_cursor_constructions; - std::cout << ",\"jsoncons_cursor_init_ns\":" - << instrumentation.jsoncons_cursor_init_ns; - std::cout << ",\"jsoncons_token_cursor_constructions\":" - << instrumentation.jsoncons_token_cursor_constructions; - std::cout << ",\"jsoncons_token_cursor_init_ns\":" - << instrumentation.jsoncons_token_cursor_init_ns; - std::cout << ",\"jsoncons_event_loop_ns\":" - << instrumentation.jsoncons_event_loop_ns; - std::cout << ",\"jsoncons_token_sync_steps\":" - << instrumentation.jsoncons_token_sync_steps; - std::cout << ",\"jsoncons_token_exact_advance_steps\":" - << instrumentation.jsoncons_token_exact_advance_steps; -#endif - std::cout << "}" << std::endl; -} - -void printHumanReadable(const Options &options, const std::string &body, - const Metrics &metrics) { - std::cout << "backend: " << benchmarkBackend() << "\n"; - std::cout << "scenario: " << options.scenario << "\n"; - std::cout << "iterations: " << options.iterations << "\n"; - std::cout << "body_bytes: " << body.size() << "\n"; - std::cout << "append_request_body_ns: " - << metrics.append_request_body_ns << "\n"; - std::cout << "process_request_body_ns: " - << metrics.process_request_body_ns << "\n"; - std::cout << "total_transaction_ns: " - << metrics.total_transaction_ns << "\n"; - std::cout << "parse_success_count: " - << metrics.parse_success_count << "\n"; - std::cout << "parse_error_count: " - << metrics.parse_error_count << "\n"; - std::cout << "ru_maxrss_kb: " << currentMaxRssKb() << "\n"; -} - -} // namespace - int main(int argc, const char *argv[]) { try { const Options options = parseOptions(argc, argv);