|
1 | | -/* auto-generated on 2024-06-11 14:08:20 -0400. Do not edit! */ |
| 1 | +/* auto-generated on 2024-08-01 09:31:50 -0400. Do not edit! */ |
2 | 2 | /* including simdjson.cpp: */ |
3 | 3 | /* begin file simdjson.cpp */ |
4 | 4 | #define SIMDJSON_SRC_SIMDJSON_CPP |
|
40 | 40 | #endif |
41 | 41 | #endif |
42 | 42 |
|
| 43 | +// C++ 23 |
| 44 | +#if !defined(SIMDJSON_CPLUSPLUS23) && (SIMDJSON_CPLUSPLUS >= 202302L) |
| 45 | +#define SIMDJSON_CPLUSPLUS23 1 |
| 46 | +#endif |
| 47 | + |
| 48 | +// C++ 20 |
| 49 | +#if !defined(SIMDJSON_CPLUSPLUS20) && (SIMDJSON_CPLUSPLUS >= 202002L) |
| 50 | +#define SIMDJSON_CPLUSPLUS20 1 |
| 51 | +#endif |
| 52 | + |
43 | 53 | // C++ 17 |
44 | 54 | #if !defined(SIMDJSON_CPLUSPLUS17) && (SIMDJSON_CPLUSPLUS >= 201703L) |
45 | 55 | #define SIMDJSON_CPLUSPLUS17 1 |
@@ -224,6 +234,11 @@ using std::size_t; |
224 | 234 | #define SIMDJSON_NO_SANITIZE_UNDEFINED |
225 | 235 | #endif |
226 | 236 |
|
| 237 | +#if defined(__clang__) || defined(__GNUC__) |
| 238 | +#define simdjson_pure [[gnu::pure]] |
| 239 | +#else |
| 240 | +#define simdjson_pure |
| 241 | +#endif |
227 | 242 |
|
228 | 243 | #if defined(__clang__) || defined(__GNUC__) |
229 | 244 | #if defined(__has_feature) |
@@ -5949,7 +5964,7 @@ class dom_parser_implementation { |
5949 | 5964 | * Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There |
5950 | 5965 | * must be an unescaped quote terminating the string. It returns the final output |
5951 | 5966 | * position as pointer. In case of error (e.g., the string has bad escaped codes), |
5952 | | - * then null_nullptrptr is returned. It is assumed that the output buffer is large |
| 5967 | + * then null_ptr is returned. It is assumed that the output buffer is large |
5953 | 5968 | * enough. E.g., if src points at 'joe"', then dst needs to have four free bytes + |
5954 | 5969 | * SIMDJSON_PADDING bytes. |
5955 | 5970 | * |
@@ -5966,7 +5981,7 @@ class dom_parser_implementation { |
5966 | 5981 | * Unescape a NON-valid UTF-8 string from src to dst, stopping at a final unescaped quote. There |
5967 | 5982 | * must be an unescaped quote terminating the string. It returns the final output |
5968 | 5983 | * position as pointer. In case of error (e.g., the string has bad escaped codes), |
5969 | | - * then null_nullptrptr is returned. It is assumed that the output buffer is large |
| 5984 | + * then null_ptr is returned. It is assumed that the output buffer is large |
5970 | 5985 | * enough. E.g., if src points at 'joe"', then dst needs to have four free bytes + |
5971 | 5986 | * SIMDJSON_PADDING bytes. |
5972 | 5987 | * |
@@ -6020,14 +6035,14 @@ class dom_parser_implementation { |
6020 | 6035 | * |
6021 | 6036 | * @return Current capacity, in bytes. |
6022 | 6037 | */ |
6023 | | - simdjson_inline size_t capacity() const noexcept; |
| 6038 | + simdjson_pure simdjson_inline size_t capacity() const noexcept; |
6024 | 6039 |
|
6025 | 6040 | /** |
6026 | 6041 | * The maximum level of nested object and arrays supported by this parser. |
6027 | 6042 | * |
6028 | 6043 | * @return Maximum depth, in bytes. |
6029 | 6044 | */ |
6030 | | - simdjson_inline size_t max_depth() const noexcept; |
| 6045 | + simdjson_pure simdjson_inline size_t max_depth() const noexcept; |
6031 | 6046 |
|
6032 | 6047 | /** |
6033 | 6048 | * Ensure this parser has enough memory to process JSON documents up to `capacity` bytes in length |
@@ -6068,11 +6083,11 @@ simdjson_inline dom_parser_implementation::dom_parser_implementation() noexcept |
6068 | 6083 | simdjson_inline dom_parser_implementation::dom_parser_implementation(dom_parser_implementation &&other) noexcept = default; |
6069 | 6084 | simdjson_inline dom_parser_implementation &dom_parser_implementation::operator=(dom_parser_implementation &&other) noexcept = default; |
6070 | 6085 |
|
6071 | | -simdjson_inline size_t dom_parser_implementation::capacity() const noexcept { |
| 6086 | +simdjson_pure simdjson_inline size_t dom_parser_implementation::capacity() const noexcept { |
6072 | 6087 | return _capacity; |
6073 | 6088 | } |
6074 | 6089 |
|
6075 | | -simdjson_inline size_t dom_parser_implementation::max_depth() const noexcept { |
| 6090 | +simdjson_pure simdjson_inline size_t dom_parser_implementation::max_depth() const noexcept { |
6076 | 6091 | return _max_depth; |
6077 | 6092 | } |
6078 | 6093 |
|
@@ -12477,7 +12492,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa |
12477 | 12492 | } |
12478 | 12493 | parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get()); |
12479 | 12494 | /*** |
12480 | | - * The On Demand API requires special padding. |
| 12495 | + * The On-Demand API requires special padding. |
12481 | 12496 | * |
12482 | 12497 | * This is related to https://github.com/simdjson/simdjson/issues/906 |
12483 | 12498 | * Basically, we want to make sure that if the parsing continues beyond the last (valid) |
@@ -13352,7 +13367,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr, |
13352 | 13367 | * Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There |
13353 | 13368 | * must be an unescaped quote terminating the string. It returns the final output |
13354 | 13369 | * position as pointer. In case of error (e.g., the string has bad escaped codes), |
13355 | | - * then null_nullptrptr is returned. It is assumed that the output buffer is large |
| 13370 | + * then null_ptr is returned. It is assumed that the output buffer is large |
13356 | 13371 | * enough. E.g., if src points at 'joe"', then dst needs to have four free bytes + |
13357 | 13372 | * SIMDJSON_PADDING bytes. |
13358 | 13373 | */ |
@@ -18696,7 +18711,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa |
18696 | 18711 | } |
18697 | 18712 | parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get()); |
18698 | 18713 | /*** |
18699 | | - * The On Demand API requires special padding. |
| 18714 | + * The On-Demand API requires special padding. |
18700 | 18715 | * |
18701 | 18716 | * This is related to https://github.com/simdjson/simdjson/issues/906 |
18702 | 18717 | * Basically, we want to make sure that if the parsing continues beyond the last (valid) |
@@ -19571,7 +19586,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr, |
19571 | 19586 | * Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There |
19572 | 19587 | * must be an unescaped quote terminating the string. It returns the final output |
19573 | 19588 | * position as pointer. In case of error (e.g., the string has bad escaped codes), |
19574 | | - * then null_nullptrptr is returned. It is assumed that the output buffer is large |
| 19589 | + * then null_ptr is returned. It is assumed that the output buffer is large |
19575 | 19590 | * enough. E.g., if src points at 'joe"', then dst needs to have four free bytes + |
19576 | 19591 | * SIMDJSON_PADDING bytes. |
19577 | 19592 | */ |
@@ -24908,7 +24923,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa |
24908 | 24923 | } |
24909 | 24924 | parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get()); |
24910 | 24925 | /*** |
24911 | | - * The On Demand API requires special padding. |
| 24926 | + * The On-Demand API requires special padding. |
24912 | 24927 | * |
24913 | 24928 | * This is related to https://github.com/simdjson/simdjson/issues/906 |
24914 | 24929 | * Basically, we want to make sure that if the parsing continues beyond the last (valid) |
@@ -25783,7 +25798,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr, |
25783 | 25798 | * Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There |
25784 | 25799 | * must be an unescaped quote terminating the string. It returns the final output |
25785 | 25800 | * position as pointer. In case of error (e.g., the string has bad escaped codes), |
25786 | | - * then null_nullptrptr is returned. It is assumed that the output buffer is large |
| 25801 | + * then null_ptr is returned. It is assumed that the output buffer is large |
25787 | 25802 | * enough. E.g., if src points at 'joe"', then dst needs to have four free bytes + |
25788 | 25803 | * SIMDJSON_PADDING bytes. |
25789 | 25804 | */ |
@@ -31391,7 +31406,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa |
31391 | 31406 | } |
31392 | 31407 | parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get()); |
31393 | 31408 | /*** |
31394 | | - * The On Demand API requires special padding. |
| 31409 | + * The On-Demand API requires special padding. |
31395 | 31410 | * |
31396 | 31411 | * This is related to https://github.com/simdjson/simdjson/issues/906 |
31397 | 31412 | * Basically, we want to make sure that if the parsing continues beyond the last (valid) |
@@ -32266,7 +32281,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr, |
32266 | 32281 | * Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There |
32267 | 32282 | * must be an unescaped quote terminating the string. It returns the final output |
32268 | 32283 | * position as pointer. In case of error (e.g., the string has bad escaped codes), |
32269 | | - * then null_nullptrptr is returned. It is assumed that the output buffer is large |
| 32284 | + * then null_ptr is returned. It is assumed that the output buffer is large |
32270 | 32285 | * enough. E.g., if src points at 'joe"', then dst needs to have four free bytes + |
32271 | 32286 | * SIMDJSON_PADDING bytes. |
32272 | 32287 | */ |
@@ -38448,7 +38463,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa |
38448 | 38463 | } |
38449 | 38464 | parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get()); |
38450 | 38465 | /*** |
38451 | | - * The On Demand API requires special padding. |
| 38466 | + * The On-Demand API requires special padding. |
38452 | 38467 | * |
38453 | 38468 | * This is related to https://github.com/simdjson/simdjson/issues/906 |
38454 | 38469 | * Basically, we want to make sure that if the parsing continues beyond the last (valid) |
@@ -39323,7 +39338,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr, |
39323 | 39338 | * Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There |
39324 | 39339 | * must be an unescaped quote terminating the string. It returns the final output |
39325 | 39340 | * position as pointer. In case of error (e.g., the string has bad escaped codes), |
39326 | | - * then null_nullptrptr is returned. It is assumed that the output buffer is large |
| 39341 | + * then null_ptr is returned. It is assumed that the output buffer is large |
39327 | 39342 | * enough. E.g., if src points at 'joe"', then dst needs to have four free bytes + |
39328 | 39343 | * SIMDJSON_PADDING bytes. |
39329 | 39344 | */ |
@@ -44472,7 +44487,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa |
44472 | 44487 | } |
44473 | 44488 | parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get()); |
44474 | 44489 | /*** |
44475 | | - * The On Demand API requires special padding. |
| 44490 | + * The On-Demand API requires special padding. |
44476 | 44491 | * |
44477 | 44492 | * This is related to https://github.com/simdjson/simdjson/issues/906 |
44478 | 44493 | * Basically, we want to make sure that if the parsing continues beyond the last (valid) |
@@ -45347,7 +45362,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr, |
45347 | 45362 | * Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There |
45348 | 45363 | * must be an unescaped quote terminating the string. It returns the final output |
45349 | 45364 | * position as pointer. In case of error (e.g., the string has bad escaped codes), |
45350 | | - * then null_nullptrptr is returned. It is assumed that the output buffer is large |
| 45365 | + * then null_ptr is returned. It is assumed that the output buffer is large |
45351 | 45366 | * enough. E.g., if src points at 'joe"', then dst needs to have four free bytes + |
45352 | 45367 | * SIMDJSON_PADDING bytes. |
45353 | 45368 | */ |
@@ -50487,7 +50502,7 @@ simdjson_inline error_code json_structural_indexer::finish(dom_parser_implementa |
50487 | 50502 | } |
50488 | 50503 | parser.n_structural_indexes = uint32_t(indexer.tail - parser.structural_indexes.get()); |
50489 | 50504 | /*** |
50490 | | - * The On Demand API requires special padding. |
| 50505 | + * The On-Demand API requires special padding. |
50491 | 50506 | * |
50492 | 50507 | * This is related to https://github.com/simdjson/simdjson/issues/906 |
50493 | 50508 | * Basically, we want to make sure that if the parsing continues beyond the last (valid) |
@@ -51362,7 +51377,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr, |
51362 | 51377 | * Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There |
51363 | 51378 | * must be an unescaped quote terminating the string. It returns the final output |
51364 | 51379 | * position as pointer. In case of error (e.g., the string has bad escaped codes), |
51365 | | - * then null_nullptrptr is returned. It is assumed that the output buffer is large |
| 51380 | + * then null_ptr is returned. It is assumed that the output buffer is large |
51366 | 51381 | * enough. E.g., if src points at 'joe"', then dst needs to have four free bytes + |
51367 | 51382 | * SIMDJSON_PADDING bytes. |
51368 | 51383 | */ |
@@ -54563,7 +54578,7 @@ simdjson_inline bool handle_unicode_codepoint_wobbly(const uint8_t **src_ptr, |
54563 | 54578 | * Unescape a valid UTF-8 string from src to dst, stopping at a final unescaped quote. There |
54564 | 54579 | * must be an unescaped quote terminating the string. It returns the final output |
54565 | 54580 | * position as pointer. In case of error (e.g., the string has bad escaped codes), |
54566 | | - * then null_nullptrptr is returned. It is assumed that the output buffer is large |
| 54581 | + * then null_ptr is returned. It is assumed that the output buffer is large |
54567 | 54582 | * enough. E.g., if src points at 'joe"', then dst needs to have four free bytes + |
54568 | 54583 | * SIMDJSON_PADDING bytes. |
54569 | 54584 | */ |
|