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
*/
0 commit comments