@@ -25,6 +25,8 @@ static void twitter_count(State& state) {
2525}
2626BENCHMARK (twitter_count);
2727
28+ SIMDJSON_PUSH_DISABLE_WARNINGS
29+ SIMDJSON_DISABLE_DEPRECATED_WARNING
2830static void iterator_twitter_count (State& state) {
2931 // Prints the number of results in twitter.json
3032 padded_string json = padded_string::load (JSON_TEST_PATH);
@@ -41,14 +43,15 @@ static void iterator_twitter_count(State& state) {
4143 }
4244}
4345BENCHMARK (iterator_twitter_count);
46+ SIMDJSON_POP_DISABLE_WARNINGS
4447
4548static void twitter_default_profile (State& state) {
4649 // Count unique users with a default profile.
4750 dom::parser parser;
4851 dom::element doc = parser.load (JSON_TEST_PATH);
4952 for (auto _ : state) {
5053 set<string_view> default_users;
51- for (dom::object tweet : doc[" statuses" ].as_array ()) {
54+ for (dom::object tweet : doc[" statuses" ].get <dom::array> ()) {
5255 dom::object user = tweet[" user" ];
5356 if (user[" default_profile" ]) {
5457 default_users.insert (user[" screen_name" ]);
@@ -65,11 +68,11 @@ static void twitter_image_sizes(State& state) {
6568 dom::element doc = parser.load (JSON_TEST_PATH);
6669 for (auto _ : state) {
6770 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> ()) {
6972 auto [media, not_found] = tweet[" entities" ][" media" ];
7073 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> ()) {
7376 image_sizes.insert ({ size[" w" ], size[" h" ] });
7477 }
7578 }
@@ -87,7 +90,7 @@ static void error_code_twitter_count(State& state) noexcept {
8790 dom::parser parser;
8891 dom::element doc = parser.load (JSON_TEST_PATH);
8992 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 > ();
9194 if (error) { return ; }
9295 if (value != 100 ) { return ; }
9396 }
@@ -101,15 +104,15 @@ static void error_code_twitter_default_profile(State& state) noexcept {
101104 for (auto _ : state) {
102105 set<string_view> default_users;
103106
104- auto [tweets, error] = doc[" statuses" ].as_array ();
107+ auto [tweets, error] = doc[" statuses" ].get <dom::array> ();
105108 if (error) { return ; }
106109 for (dom::element tweet : tweets) {
107- auto [user, error2] = tweet[" user" ].as_object ();
110+ auto [user, error2] = tweet[" user" ].get <dom::object> ();
108111 if (error2) { return ; }
109- auto [default_profile, error3] = user[" default_profile" ].as_bool ();
112+ auto [default_profile, error3] = user[" default_profile" ].get < bool > ();
110113 if (error3) { return ; }
111114 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> ();
113116 if (error4) { return ; }
114117 default_users.insert (screen_name);
115118 }
@@ -120,6 +123,8 @@ static void error_code_twitter_default_profile(State& state) noexcept {
120123}
121124BENCHMARK (error_code_twitter_default_profile);
122125
126+ SIMDJSON_PUSH_DISABLE_WARNINGS
127+ SIMDJSON_DISABLE_DEPRECATED_WARNING
123128static void iterator_twitter_default_profile (State& state) {
124129 // Count unique users with a default profile.
125130 padded_string json = padded_string::load (JSON_TEST_PATH);
@@ -128,7 +133,7 @@ static void iterator_twitter_default_profile(State& state) {
128133 set<string_view> default_users;
129134 ParsedJson::Iterator iter (pj);
130135
131- // for (dom::object tweet : doc["statuses"].as_array ()) {
136+ // for (dom::object tweet : doc["statuses"].get<dom::array> ()) {
132137 if (!(iter.move_to_key (" statuses" ) && iter.is_array ())) { return ; }
133138 if (iter.down ()) { // first status
134139 do {
@@ -156,6 +161,7 @@ static void iterator_twitter_default_profile(State& state) {
156161 if (default_users.size () != 86 ) { return ; }
157162 }
158163}
164+ SIMDJSON_POP_DISABLE_WARNINGS
159165BENCHMARK (iterator_twitter_default_profile);
160166
161167static void error_code_twitter_image_sizes (State& state) noexcept {
@@ -164,17 +170,17 @@ static void error_code_twitter_image_sizes(State& state) noexcept {
164170 dom::element doc = parser.load (JSON_TEST_PATH);
165171 for (auto _ : state) {
166172 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> ();
168174 if (error) { return ; }
169175 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> ();
171177 if (!not_found) {
172178 for (dom::element image : images) {
173- auto [sizes, error2] = image[" sizes" ].as_object ();
179+ auto [sizes, error2] = image[" sizes" ].get <dom::object> ();
174180 if (error2) { return ; }
175181 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 > ();
178184 if (error3 || error4) { return ; }
179185 image_sizes.insert ({ width, height });
180186 }
@@ -186,6 +192,8 @@ static void error_code_twitter_image_sizes(State& state) noexcept {
186192}
187193BENCHMARK (error_code_twitter_image_sizes);
188194
195+ SIMDJSON_PUSH_DISABLE_WARNINGS
196+ SIMDJSON_DISABLE_DEPRECATED_WARNING
189197static void iterator_twitter_image_sizes (State& state) {
190198 // Count unique image sizes
191199 padded_string json = padded_string::load (JSON_TEST_PATH);
@@ -194,7 +202,7 @@ static void iterator_twitter_image_sizes(State& state) {
194202 set<tuple<uint64_t , uint64_t >> image_sizes;
195203 ParsedJson::Iterator iter (pj);
196204
197- // for (dom::object tweet : doc["statuses"].as_array ()) {
205+ // for (dom::object tweet : doc["statuses"].get<dom::array> ()) {
198206 if (!(iter.move_to_key (" statuses" ) && iter.is_array ())) { return ; }
199207 if (iter.down ()) { // first status
200208 do {
@@ -206,11 +214,11 @@ static void iterator_twitter_image_sizes(State& state) {
206214 if (iter.move_to_key (" media" )) {
207215 if (!iter.is_array ()) { return ; }
208216
209- // for (dom::object image : media.as_array ()) {
217+ // for (dom::object image : media.get<dom::array> ()) {
210218 if (iter.down ()) { // first media
211219 do {
212220
213- // for (auto [key, size] : image["sizes"].as_object ()) {
221+ // for (auto [key, size] : image["sizes"].get<dom::object> ()) {
214222 if (!(iter.move_to_key (" sizes" ) && iter.is_object ())) { return ; }
215223 if (iter.down ()) { // first size
216224 do {
@@ -256,5 +264,6 @@ static void print_json(State& state) noexcept {
256264 }
257265}
258266BENCHMARK (print_json);
267+ SIMDJSON_POP_DISABLE_WARNINGS
259268
260269BENCHMARK_MAIN ();
0 commit comments