@@ -25,6 +25,8 @@ static void twitter_count(State& state) {
25
25
}
26
26
BENCHMARK (twitter_count);
27
27
28
+ SIMDJSON_PUSH_DISABLE_WARNINGS
29
+ SIMDJSON_DISABLE_DEPRECATED_WARNING
28
30
static void iterator_twitter_count (State& state) {
29
31
// Prints the number of results in twitter.json
30
32
padded_string json = padded_string::load (JSON_TEST_PATH);
@@ -41,14 +43,15 @@ static void iterator_twitter_count(State& state) {
41
43
}
42
44
}
43
45
BENCHMARK (iterator_twitter_count);
46
+ SIMDJSON_POP_DISABLE_WARNINGS
44
47
45
48
static void twitter_default_profile (State& state) {
46
49
// Count unique users with a default profile.
47
50
dom::parser parser;
48
51
dom::element doc = parser.load (JSON_TEST_PATH);
49
52
for (auto _ : state) {
50
53
set<string_view> default_users;
51
- for (dom::object tweet : doc[" statuses" ].as_array ()) {
54
+ for (dom::object tweet : doc[" statuses" ].get <dom::array> ()) {
52
55
dom::object user = tweet[" user" ];
53
56
if (user[" default_profile" ]) {
54
57
default_users.insert (user[" screen_name" ]);
@@ -65,11 +68,11 @@ static void twitter_image_sizes(State& state) {
65
68
dom::element doc = parser.load (JSON_TEST_PATH);
66
69
for (auto _ : state) {
67
70
set<tuple<uint64_t , uint64_t >> image_sizes;
68
- for (dom::object tweet : doc[" statuses" ].as_array ()) {
71
+ for (dom::object tweet : doc[" statuses" ].get <dom::array> ()) {
69
72
auto [media, not_found] = tweet[" entities" ][" media" ];
70
73
if (!not_found) {
71
- for (dom::object image : media.as_array ()) {
72
- for (auto [key, size] : image[" sizes" ].as_object ()) {
74
+ for (dom::object image : media.get <dom::array> ()) {
75
+ for (auto [key, size] : image[" sizes" ].get <dom::object> ()) {
73
76
image_sizes.insert ({ size[" w" ], size[" h" ] });
74
77
}
75
78
}
@@ -87,7 +90,7 @@ static void error_code_twitter_count(State& state) noexcept {
87
90
dom::parser parser;
88
91
dom::element doc = parser.load (JSON_TEST_PATH);
89
92
for (auto _ : state) {
90
- auto [value, error] = doc[" search_metadata" ][" count" ].as_uint64_t ();
93
+ auto [value, error] = doc[" search_metadata" ][" count" ].get < uint64_t > ();
91
94
if (error) { return ; }
92
95
if (value != 100 ) { return ; }
93
96
}
@@ -101,15 +104,15 @@ static void error_code_twitter_default_profile(State& state) noexcept {
101
104
for (auto _ : state) {
102
105
set<string_view> default_users;
103
106
104
- auto [tweets, error] = doc[" statuses" ].as_array ();
107
+ auto [tweets, error] = doc[" statuses" ].get <dom::array> ();
105
108
if (error) { return ; }
106
109
for (dom::element tweet : tweets) {
107
- auto [user, error2] = tweet[" user" ].as_object ();
110
+ auto [user, error2] = tweet[" user" ].get <dom::object> ();
108
111
if (error2) { return ; }
109
- auto [default_profile, error3] = user[" default_profile" ].as_bool ();
112
+ auto [default_profile, error3] = user[" default_profile" ].get < bool > ();
110
113
if (error3) { return ; }
111
114
if (default_profile) {
112
- auto [screen_name, error4] = user[" screen_name" ].as_string ();
115
+ auto [screen_name, error4] = user[" screen_name" ].get <std::string_view> ();
113
116
if (error4) { return ; }
114
117
default_users.insert (screen_name);
115
118
}
@@ -120,6 +123,8 @@ static void error_code_twitter_default_profile(State& state) noexcept {
120
123
}
121
124
BENCHMARK (error_code_twitter_default_profile);
122
125
126
+ SIMDJSON_PUSH_DISABLE_WARNINGS
127
+ SIMDJSON_DISABLE_DEPRECATED_WARNING
123
128
static void iterator_twitter_default_profile (State& state) {
124
129
// Count unique users with a default profile.
125
130
padded_string json = padded_string::load (JSON_TEST_PATH);
@@ -128,7 +133,7 @@ static void iterator_twitter_default_profile(State& state) {
128
133
set<string_view> default_users;
129
134
ParsedJson::Iterator iter (pj);
130
135
131
- // for (dom::object tweet : doc["statuses"].as_array ()) {
136
+ // for (dom::object tweet : doc["statuses"].get<dom::array> ()) {
132
137
if (!(iter.move_to_key (" statuses" ) && iter.is_array ())) { return ; }
133
138
if (iter.down ()) { // first status
134
139
do {
@@ -156,6 +161,7 @@ static void iterator_twitter_default_profile(State& state) {
156
161
if (default_users.size () != 86 ) { return ; }
157
162
}
158
163
}
164
+ SIMDJSON_POP_DISABLE_WARNINGS
159
165
BENCHMARK (iterator_twitter_default_profile);
160
166
161
167
static void error_code_twitter_image_sizes (State& state) noexcept {
@@ -164,17 +170,17 @@ static void error_code_twitter_image_sizes(State& state) noexcept {
164
170
dom::element doc = parser.load (JSON_TEST_PATH);
165
171
for (auto _ : state) {
166
172
set<tuple<uint64_t , uint64_t >> image_sizes;
167
- auto [statuses, error] = doc[" statuses" ].as_array ();
173
+ auto [statuses, error] = doc[" statuses" ].get <dom::array> ();
168
174
if (error) { return ; }
169
175
for (dom::element tweet : statuses) {
170
- auto [images, not_found] = tweet[" entities" ][" media" ].as_array ();
176
+ auto [images, not_found] = tweet[" entities" ][" media" ].get <dom::array> ();
171
177
if (!not_found) {
172
178
for (dom::element image : images) {
173
- auto [sizes, error2] = image[" sizes" ].as_object ();
179
+ auto [sizes, error2] = image[" sizes" ].get <dom::object> ();
174
180
if (error2) { return ; }
175
181
for (auto [key, size] : sizes) {
176
- auto [width, error3] = size[" w" ].as_uint64_t ();
177
- auto [height, error4] = size[" h" ].as_uint64_t ();
182
+ auto [width, error3] = size[" w" ].get < uint64_t > ();
183
+ auto [height, error4] = size[" h" ].get < uint64_t > ();
178
184
if (error3 || error4) { return ; }
179
185
image_sizes.insert ({ width, height });
180
186
}
@@ -186,6 +192,8 @@ static void error_code_twitter_image_sizes(State& state) noexcept {
186
192
}
187
193
BENCHMARK (error_code_twitter_image_sizes);
188
194
195
+ SIMDJSON_PUSH_DISABLE_WARNINGS
196
+ SIMDJSON_DISABLE_DEPRECATED_WARNING
189
197
static void iterator_twitter_image_sizes (State& state) {
190
198
// Count unique image sizes
191
199
padded_string json = padded_string::load (JSON_TEST_PATH);
@@ -194,7 +202,7 @@ static void iterator_twitter_image_sizes(State& state) {
194
202
set<tuple<uint64_t , uint64_t >> image_sizes;
195
203
ParsedJson::Iterator iter (pj);
196
204
197
- // for (dom::object tweet : doc["statuses"].as_array ()) {
205
+ // for (dom::object tweet : doc["statuses"].get<dom::array> ()) {
198
206
if (!(iter.move_to_key (" statuses" ) && iter.is_array ())) { return ; }
199
207
if (iter.down ()) { // first status
200
208
do {
@@ -206,11 +214,11 @@ static void iterator_twitter_image_sizes(State& state) {
206
214
if (iter.move_to_key (" media" )) {
207
215
if (!iter.is_array ()) { return ; }
208
216
209
- // for (dom::object image : media.as_array ()) {
217
+ // for (dom::object image : media.get<dom::array> ()) {
210
218
if (iter.down ()) { // first media
211
219
do {
212
220
213
- // for (auto [key, size] : image["sizes"].as_object ()) {
221
+ // for (auto [key, size] : image["sizes"].get<dom::object> ()) {
214
222
if (!(iter.move_to_key (" sizes" ) && iter.is_object ())) { return ; }
215
223
if (iter.down ()) { // first size
216
224
do {
@@ -256,5 +264,6 @@ static void print_json(State& state) noexcept {
256
264
}
257
265
}
258
266
BENCHMARK (print_json);
267
+ SIMDJSON_POP_DISABLE_WARNINGS
259
268
260
269
BENCHMARK_MAIN ();
0 commit comments