Skip to content

Commit 7a2e6b7

Browse files
committed
Make ondemand classes usable from simdjson_result
1 parent dfae67e commit 7a2e6b7

31 files changed

+70
-70
lines changed

src/arm64/begin_implementation.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
#define SIMDJSON_IMPLEMENTATION arm64
2+
#define SIMDJSON_TARGET_IMPLEMENTATION
3+
#define SIMDJSON_UNTARGET_IMPLEMENTATION
4+
25
#include "arm64/implementation.h"
36
#include "arm64/intrinsics.h"
47
#include "arm64/bitmanipulation.h"

src/arm64/bitmask.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ simdjson_really_inline uint64_t prefix_xor(uint64_t bitmask) {
3434

3535
} // namespace arm64
3636
} // namespace simdjson
37-
SIMDJSON_UNTARGET_REGION
37+
SIMDJSON_UNTARGET_IMPLEMENTATION
3838

3939
#endif

src/arm64/end_implementation.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
#undef SIMDJSON_IMPLEMENTATION
2+
#undef SIMDJSON_TARGET_IMPLEMENTATION
3+
#undef SIMDJSON_UNTARGET_IMPLEMENTATION

src/fallback/begin_implementation.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
#define SIMDJSON_IMPLEMENTATION fallback
2+
#define SIMDJSON_TARGET_IMPLEMENTATION
3+
#define SIMDJSON_UNTARGET_IMPLEMENTATION
4+
25
#include "fallback/implementation.h"
36
#include "fallback/bitmanipulation.h"

src/fallback/end_implementation.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
11
#undef SIMDJSON_IMPLEMENTATION
2+
#undef SIMDJSON_TARGET_IMPLEMENTATION
3+
#undef SIMDJSON_UNTARGET_IMPLEMENTATION

src/generic/ondemand.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
// When *declaring* classes, we use host compiler options so it will all link.
2+
// When *defining* class methods, we use target compiler options.
3+
4+
SIMDJSON_UNTARGET_IMPLEMENTATION
15
#include "generic/ondemand/logger.h"
26
#include "generic/ondemand/raw_json_string.h"
37
#include "generic/ondemand/token_iterator.h"
@@ -11,6 +15,7 @@
1115
#include "generic/ondemand/object.h"
1216
#include "generic/ondemand/parser.h"
1317

18+
SIMDJSON_TARGET_IMPLEMENTATION
1419
#include "generic/ondemand/logger-inl.h"
1520
#include "generic/ondemand/raw_json_string-inl.h"
1621
#include "generic/ondemand/token_iterator-inl.h"

src/generic/ondemand/array-inl.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,10 @@ namespace ondemand {
4040
// error == SUCCESS.
4141
//
4242

43-
simdjson_really_inline array::array() noexcept = default;
4443
simdjson_really_inline array::array(json_iterator_ref &&_iter) noexcept
4544
: iter{std::forward<json_iterator_ref>(_iter)}
4645
{
4746
}
48-
simdjson_really_inline array::array(array &&other) noexcept = default;
49-
simdjson_really_inline array &array::operator=(array &&other) noexcept = default;
5047

5148
simdjson_really_inline array::~array() noexcept {
5249
if (iter.is_alive()) {

src/generic/ondemand/array.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,15 @@ class document;
1212
*/
1313
class array {
1414
public:
15-
simdjson_really_inline array() noexcept;
16-
simdjson_really_inline ~array() noexcept;
17-
simdjson_really_inline array(array &&other) noexcept;
18-
simdjson_really_inline array &operator=(array &&other) noexcept;
15+
simdjson_really_inline array() noexcept = default;
16+
simdjson_really_inline array(array &&other) noexcept = default;
17+
simdjson_really_inline array &operator=(array &&other) noexcept = default;
18+
1919
array(const array &) = delete;
2020
array &operator=(const array &) = delete;
2121

22+
simdjson_really_inline ~array() noexcept;
23+
2224
simdjson_really_inline array_iterator begin() & noexcept;
2325
simdjson_really_inline array_iterator end() & noexcept;
2426

src/generic/ondemand/array_iterator-inl.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@ namespace ondemand {
44

55
simdjson_really_inline array_iterator::array_iterator(json_iterator_ref &_iter) noexcept : iter{&_iter} {}
66

7-
simdjson_really_inline array_iterator::array_iterator() noexcept = default;
8-
simdjson_really_inline array_iterator::array_iterator(const array_iterator &_a) noexcept = default;
9-
simdjson_really_inline array_iterator &array_iterator::operator=(const array_iterator &_a) noexcept = default;
10-
117
simdjson_really_inline simdjson_result<value> array_iterator::operator*() noexcept {
128
if (error) { iter->release(); return error; }
139
return value::start(iter->borrow());

src/generic/ondemand/array_iterator.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ class document;
1212
*/
1313
class array_iterator {
1414
public:
15-
simdjson_really_inline array_iterator(json_iterator_ref &iter) noexcept;
16-
simdjson_really_inline array_iterator(const array_iterator &a) noexcept;
17-
simdjson_really_inline array_iterator &operator=(const array_iterator &a) noexcept;
15+
simdjson_really_inline array_iterator() noexcept = default;
16+
simdjson_really_inline array_iterator(const array_iterator &a) noexcept = default;
17+
simdjson_really_inline array_iterator &operator=(const array_iterator &a) noexcept = default;
1818

1919
//
2020
// Iterator interface
@@ -40,9 +40,10 @@ class array_iterator {
4040
*/
4141
error_code error{};
4242

43-
simdjson_really_inline array_iterator() noexcept;
43+
simdjson_really_inline array_iterator(json_iterator_ref &iter) noexcept;
4444

4545
friend class array;
46+
friend class value;
4647
friend struct simdjson_result<array_iterator>;
4748
};
4849

src/generic/ondemand/document-inl.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ namespace {
22
namespace SIMDJSON_IMPLEMENTATION {
33
namespace ondemand {
44

5-
simdjson_really_inline document::document(document &&other) noexcept = default;
6-
simdjson_really_inline document &document::operator=(document &&other) noexcept = default;
75
simdjson_really_inline document::document(ondemand::json_iterator &&_iter, const uint8_t *_json) noexcept
86
: iter{std::forward<json_iterator>(_iter)},
97
json{_json}

src/generic/ondemand/document.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ class raw_json_string;
1919
*/
2020
class document {
2121
public:
22+
simdjson_really_inline document(document &&other) noexcept = default;
23+
simdjson_really_inline document &operator=(document &&other) noexcept = default;
24+
2225
simdjson_really_inline document() noexcept = default;
23-
simdjson_really_inline document(document &&other) noexcept;
24-
simdjson_really_inline document &operator=(document &&other) noexcept;
2526
simdjson_really_inline document(const document &other) = delete;
2627
simdjson_really_inline document &operator=(const document &other) = delete;
2728
simdjson_really_inline ~document() noexcept;

src/generic/ondemand/field-inl.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ namespace ondemand {
44

55
// clang 6 doesn't think the default constructor can be noexcept, so we make it explicit
66
simdjson_really_inline field::field() noexcept : std::pair<raw_json_string, ondemand::value>() {}
7-
simdjson_really_inline field::field(field &&other) noexcept = default;
8-
simdjson_really_inline field &field::operator=(field &&other) noexcept = default;
97

108
simdjson_really_inline field::field(raw_json_string key, ondemand::value &&value) noexcept
119
: std::pair<raw_json_string, ondemand::value>(key, std::forward<ondemand::value>(value))

src/generic/ondemand/field.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ namespace ondemand {
1010
class field : public std::pair<raw_json_string, value> {
1111
public:
1212
simdjson_really_inline field() noexcept;
13-
simdjson_really_inline field(field &&other) noexcept;
14-
simdjson_really_inline field &operator=(field &&other) noexcept;
13+
simdjson_really_inline field(field &&other) noexcept = default;
14+
simdjson_really_inline field &operator=(field &&other) noexcept = default;
1515
simdjson_really_inline field(const field &other) noexcept = delete;
1616
simdjson_really_inline field &operator=(const field &other) noexcept = delete;
1717

src/generic/ondemand/json_iterator-inl.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ namespace {
22
namespace SIMDJSON_IMPLEMENTATION {
33
namespace ondemand {
44

5-
simdjson_really_inline json_iterator::json_iterator() noexcept = default;
65
simdjson_really_inline json_iterator::json_iterator(json_iterator &&other) noexcept
76
: token_iterator(std::forward<token_iterator>(other)),
87
parser{other.parser},
@@ -266,7 +265,6 @@ simdjson_really_inline json_iterator_ref json_iterator::borrow() noexcept {
266265
//
267266
// json_iterator_ref
268267
//
269-
simdjson_really_inline json_iterator_ref::json_iterator_ref() noexcept = default;
270268
simdjson_really_inline json_iterator_ref::json_iterator_ref(json_iterator_ref &&other) noexcept
271269
: iter{other.iter},
272270
lease_depth{other.lease_depth}

src/generic/ondemand/json_iterator.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class json_iterator_ref;
1111
*/
1212
class json_iterator : public token_iterator {
1313
public:
14-
simdjson_really_inline json_iterator() noexcept;
14+
simdjson_really_inline json_iterator() noexcept = default;
1515
simdjson_really_inline json_iterator(json_iterator &&other) noexcept;
1616
simdjson_really_inline json_iterator &operator=(json_iterator &&other) noexcept;
1717
simdjson_really_inline json_iterator(const json_iterator &other) noexcept = delete;
@@ -157,7 +157,7 @@ class json_iterator : public token_iterator {
157157

158158
class json_iterator_ref {
159159
public:
160-
simdjson_really_inline json_iterator_ref() noexcept;
160+
simdjson_really_inline json_iterator_ref() noexcept = default;
161161
simdjson_really_inline json_iterator_ref(json_iterator_ref &&other) noexcept;
162162
simdjson_really_inline json_iterator_ref &operator=(json_iterator_ref &&other) noexcept;
163163
simdjson_really_inline json_iterator_ref(const json_iterator_ref &other) noexcept = delete;

src/generic/ondemand/object-inl.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,11 @@ namespace ondemand {
4343
// In this state, iter->depth < depth, at_start == false, and error == SUCCESS.
4444
//
4545

46-
simdjson_really_inline object::object() noexcept = default;
4746
simdjson_really_inline object::object(json_iterator_ref &&_iter) noexcept
4847
: iter{std::forward<json_iterator_ref>(_iter)},
4948
at_start{true}
5049
{
5150
}
52-
simdjson_really_inline object::object(object &&other) noexcept = default;
53-
simdjson_really_inline object &object::operator=(object &&other) noexcept = default;
5451

5552

5653
simdjson_really_inline object::~object() noexcept {

src/generic/ondemand/object.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,14 @@ namespace ondemand {
99
*/
1010
class object {
1111
public:
12-
simdjson_really_inline object() noexcept;
13-
simdjson_really_inline ~object() noexcept;
14-
simdjson_really_inline object(object &&other) noexcept;
15-
simdjson_really_inline object &operator=(object &&other) noexcept;
12+
simdjson_really_inline object() noexcept = default;
13+
simdjson_really_inline object(object &&other) noexcept = default;
14+
simdjson_really_inline object &operator=(object &&other) noexcept = default;
1615
object(const object &) = delete;
1716
object &operator=(const object &) = delete;
1817

18+
simdjson_really_inline ~object() noexcept;
19+
1920
simdjson_really_inline object_iterator begin() noexcept;
2021
simdjson_really_inline object_iterator end() noexcept;
2122
simdjson_really_inline simdjson_result<value> operator[](const std::string_view key) & noexcept;

src/generic/ondemand/object_iterator-inl.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ namespace ondemand {
88

99
simdjson_really_inline object_iterator::object_iterator(json_iterator_ref &_iter) noexcept : iter{&_iter} {}
1010

11-
simdjson_really_inline object_iterator::object_iterator() noexcept = default;
12-
simdjson_really_inline object_iterator::object_iterator(const object_iterator &_o) noexcept = default;
13-
simdjson_really_inline object_iterator &object_iterator::operator=(const object_iterator &_o) noexcept = default;
14-
1511
simdjson_really_inline simdjson_result<field> object_iterator::operator*() noexcept {
1612
if (error) { iter->release(); return error; }
1713
return field::start(iter->borrow());

src/generic/ondemand/object_iterator.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ class field;
88

99
class object_iterator {
1010
public:
11-
simdjson_really_inline object_iterator(json_iterator_ref &iter) noexcept;
12-
simdjson_really_inline object_iterator(const object_iterator &o) noexcept;
13-
simdjson_really_inline object_iterator &operator=(const object_iterator &o) noexcept;
11+
simdjson_really_inline object_iterator() noexcept = default;
12+
simdjson_really_inline object_iterator(const object_iterator &o) noexcept = default;
13+
simdjson_really_inline object_iterator &operator=(const object_iterator &o) noexcept = default;
1414

1515
//
1616
// Iterator interface
@@ -36,7 +36,7 @@ class object_iterator {
3636
* we should store it in document so there's only one of them.
3737
*/
3838
error_code error{};
39-
simdjson_really_inline object_iterator() noexcept;
39+
simdjson_really_inline object_iterator(json_iterator_ref &iter) noexcept;
4040
friend struct simdjson_result<object_iterator>;
4141
friend class object;
4242
};

src/generic/ondemand/raw_json_string-inl.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@ namespace {
22
namespace SIMDJSON_IMPLEMENTATION {
33
namespace ondemand {
44

5-
simdjson_really_inline raw_json_string::raw_json_string() noexcept : buf{nullptr} {} // for constructing a simdjson_result
65
simdjson_really_inline raw_json_string::raw_json_string(const uint8_t * _buf) noexcept : buf{_buf} {}
7-
simdjson_really_inline raw_json_string::raw_json_string(const raw_json_string &other) noexcept : buf{other.buf} {}
8-
simdjson_really_inline raw_json_string &raw_json_string::operator=(const raw_json_string &other) noexcept { buf = other.buf; return *this; }
6+
97
simdjson_really_inline const char * raw_json_string::raw() const noexcept { return (const char *)buf; }
108
simdjson_really_inline SIMDJSON_WARN_UNUSED simdjson_result<std::string_view> raw_json_string::unescape(uint8_t *&dst) const noexcept {
119
uint8_t *end = stage2::stringparsing::parse_string(buf, dst);

src/generic/ondemand/raw_json_string.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ class parser;
1414
*/
1515
class raw_json_string {
1616
public:
17-
simdjson_really_inline raw_json_string() noexcept;
17+
simdjson_really_inline raw_json_string() noexcept = default;
18+
simdjson_really_inline raw_json_string(const raw_json_string &other) noexcept = default;
19+
simdjson_really_inline raw_json_string &operator=(const raw_json_string &other) noexcept = default;
1820
simdjson_really_inline raw_json_string(const uint8_t * _buf) noexcept;
19-
simdjson_really_inline raw_json_string(const raw_json_string &other) noexcept;
20-
simdjson_really_inline raw_json_string &operator=(const raw_json_string &other) noexcept;
2121
simdjson_really_inline const char * raw() const noexcept;
2222
simdjson_really_inline SIMDJSON_WARN_UNUSED simdjson_result<std::string_view> unescape(uint8_t *&dst) const noexcept;
2323
simdjson_really_inline SIMDJSON_WARN_UNUSED simdjson_result<std::string_view> unescape(json_iterator &iter) const noexcept;
2424
private:
25-
const uint8_t * buf;
25+
const uint8_t * buf{};
2626
friend class object;
2727
};
2828

src/generic/ondemand/token_iterator-inl.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@ namespace {
22
namespace SIMDJSON_IMPLEMENTATION {
33
namespace ondemand {
44

5-
simdjson_really_inline token_iterator::token_iterator() noexcept = default;
6-
simdjson_really_inline token_iterator::token_iterator(token_iterator &&other) noexcept = default;
7-
simdjson_really_inline token_iterator &token_iterator::operator=(token_iterator &&other) noexcept = default;
85
simdjson_really_inline token_iterator::token_iterator(const uint8_t *_buf, uint32_t *_index) noexcept
96
: buf{_buf}, index{_index}
107
{

src/generic/ondemand/token_iterator.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ namespace ondemand {
1010
*/
1111
class token_iterator {
1212
public:
13-
simdjson_really_inline token_iterator() noexcept;
14-
simdjson_really_inline token_iterator(token_iterator &&other) noexcept;
15-
simdjson_really_inline token_iterator &operator=(token_iterator &&other) noexcept;
13+
simdjson_really_inline token_iterator() noexcept = default;
14+
simdjson_really_inline token_iterator(token_iterator &&other) noexcept = default;
15+
simdjson_really_inline token_iterator &operator=(token_iterator &&other) noexcept = default;
1616
simdjson_really_inline token_iterator(const token_iterator &other) noexcept = delete;
1717
simdjson_really_inline token_iterator &operator=(const token_iterator &other) noexcept = delete;
1818

src/generic/ondemand/value-inl.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@ namespace {
22
namespace SIMDJSON_IMPLEMENTATION {
33
namespace ondemand {
44

5-
simdjson_really_inline value::value() noexcept = default;
6-
simdjson_really_inline value::value(value &&other) noexcept = default;
7-
simdjson_really_inline value &value::operator=(value &&other) noexcept = default;
85
simdjson_really_inline value::value(json_iterator_ref && _iter, const uint8_t *_json) noexcept
96
: iter{std::forward<json_iterator_ref>(_iter)},
107
json{_json}

src/generic/ondemand/value.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ class array_iterator;
1818
*/
1919
class value {
2020
public:
21-
simdjson_really_inline value() noexcept;
22-
simdjson_really_inline value(value &&other) noexcept;
23-
simdjson_really_inline value &operator=(value && other) noexcept;
21+
simdjson_really_inline value() noexcept = default;
22+
simdjson_really_inline value(value &&other) noexcept = default;
23+
simdjson_really_inline value &operator=(value && other) noexcept = default;
2424
simdjson_really_inline value(const value &) noexcept = delete;
2525
simdjson_really_inline value &operator=(const value &) noexcept = delete;
2626

src/haswell/begin_implementation.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
#define SIMDJSON_IMPLEMENTATION haswell
2-
#define SIMDJSON_TARGET_HASWELL SIMDJSON_TARGET_REGION("avx2,bmi,pclmul,lzcnt")
2+
#define SIMDJSON_TARGET_IMPLEMENTATION SIMDJSON_TARGET_REGION("avx2,bmi,pclmul,lzcnt")
3+
#define SIMDJSON_UNTARGET_IMPLEMENTATION SIMDJSON_UNTARGET_REGION
34

45
#include "haswell/implementation.h"
56
#include "haswell/intrinsics.h" // Generally need to be included outside SIMDJSON_TARGET_REGION
67

7-
SIMDJSON_TARGET_HASWELL
8+
SIMDJSON_TARGET_IMPLEMENTATION
89

910
#include "haswell/bitmanipulation.h"
1011
#include "haswell/bitmask.h"

src/haswell/end_implementation.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
1+
SIMDJSON_UNTARGET_IMPLEMENTATION
2+
13
#undef SIMDJSON_IMPLEMENTATION
2-
SIMDJSON_UNTARGET_REGION
4+
#undef SIMDJSON_TARGET_IMPLEMENTATION
5+
#undef SIMDJSON_UNTARGET_IMPLEMENTATION

src/haswell/intrinsics.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@
4141
// has it as a macro.
4242
#ifndef _blsr_u64
4343
// we roll our own
44-
SIMDJSON_TARGET_HASWELL
44+
SIMDJSON_TARGET_IMPLEMENTATION
4545
static simdjson_really_inline uint64_t _blsr_u64(uint64_t n) {
4646
return (n - 1) & n;
4747
}
48-
SIMDJSON_UNTARGET_REGION
48+
SIMDJSON_UNTARGET_IMPLEMENTATION
4949
#endif // _blsr_u64
5050
#endif // SIMDJSON_CLANG_VISUAL_STUDIO
5151

src/westmere/begin_implementation.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
#define SIMDJSON_IMPLEMENTATION westmere
2-
#define SIMDJSON_TARGET_WESTMERE SIMDJSON_TARGET_REGION("sse4.2,pclmul")
2+
#define SIMDJSON_TARGET_IMPLEMENTATION SIMDJSON_TARGET_REGION("sse4.2,pclmul")
3+
#define SIMDJSON_UNTARGET_IMPLEMENTATION SIMDJSON_UNTARGET_REGION
34

45
#include "westmere/intrinsics.h" // Generally need to be included outside SIMDJSON_TARGET_REGION
56
#include "westmere/implementation.h"
67

7-
SIMDJSON_TARGET_WESTMERE
8+
SIMDJSON_TARGET_IMPLEMENTATION
89

910
#include "westmere/bitmanipulation.h"
1011
#include "westmere/bitmask.h"

src/westmere/end_implementation.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
1+
SIMDJSON_UNTARGET_IMPLEMENTATION
2+
13
#undef SIMDJSON_IMPLEMENTATION
2-
SIMDJSON_UNTARGET_REGION
4+
#undef SIMDJSON_TARGET_IMPLEMENTATION
5+
#undef SIMDJSON_UNTARGET_IMPLEMENTATION

0 commit comments

Comments
 (0)