@@ -145,14 +145,18 @@ simdjson_really_inline simdjson_result<array_iterator> value::end() & noexcept {
145
145
return {};
146
146
}
147
147
148
- // simdjson_really_inline void value::log_value(const char *type) const noexcept {
149
- // char json_char[]{char(json[0]), '\0'};
150
- // logger::log_value(*iter, type, json_char);
151
- // }
152
- // simdjson_really_inline void value::log_error(const char *message) const noexcept {
153
- // char json_char[]{char(json[0]), '\0'};
154
- // logger::log_error(*iter, message, json_char);
155
- // }
148
+ simdjson_really_inline simdjson_result<value> value::operator [](std::string_view key) & noexcept {
149
+ return get_object ()[key];
150
+ }
151
+ simdjson_really_inline simdjson_result<value> value::operator [](std::string_view key) && noexcept {
152
+ return std::forward<value>(*this ).get_object ()[key];
153
+ }
154
+ simdjson_really_inline simdjson_result<value> value::operator [](const char *key) & noexcept {
155
+ return get_object ()[key];
156
+ }
157
+ simdjson_really_inline simdjson_result<value> value::operator [](const char *key) && noexcept {
158
+ return std::forward<value>(*this ).get_object ()[key];
159
+ }
156
160
157
161
} // namespace ondemand
158
162
} // namespace SIMDJSON_IMPLEMENTATION
@@ -184,75 +188,92 @@ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::array_
184
188
return {};
185
189
}
186
190
187
- simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::array > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_array() & & noexcept {
191
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator [](std::string_view key) & noexcept {
188
192
if (error ()) { return error (); }
189
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first).get_array ();
193
+ return first[key];
194
+ }
195
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value> simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator [](std::string_view key) && noexcept {
196
+ if (error ()) { return error (); }
197
+ return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first)[key];
198
+ }
199
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value> simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator [](const char *key) & noexcept {
200
+ if (error ()) { return error (); }
201
+ return first[key];
190
202
}
203
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value> simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator [](const char *key) && noexcept {
204
+ if (error ()) { return error (); }
205
+ return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first)[key];
206
+ }
207
+
191
208
simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::array> simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_array() & noexcept {
209
+ if (error ()) { return error (); }
210
+ return first.get_array ();
211
+ }
212
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::array> simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_array() && noexcept {
192
213
if (error ()) { return error (); }
193
214
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first).get_array ();
194
215
}
216
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::object> simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_object() & noexcept {
217
+ if (error ()) { return error (); }
218
+ return first.get_object ();
219
+ }
195
220
simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::object> simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_object() && noexcept {
196
221
if (error ()) { return error (); }
197
222
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first).get_object ();
198
223
}
199
- simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::object > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_object () & noexcept {
224
+ simdjson_really_inline simdjson_result<uint64_t > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_uint64 () & noexcept {
200
225
if (error ()) { return error (); }
201
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first). get_object ();
226
+ return first. get_uint64 ();
202
227
}
203
228
simdjson_really_inline simdjson_result<uint64_t > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_uint64() && noexcept {
204
229
if (error ()) { return error (); }
205
230
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first).get_uint64 ();
206
231
}
207
- simdjson_really_inline simdjson_result<uint64_t > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_uint64 () & noexcept {
232
+ simdjson_really_inline simdjson_result<int64_t > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_int64 () & noexcept {
208
233
if (error ()) { return error (); }
209
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first). get_uint64 ();
234
+ return first. get_int64 ();
210
235
}
211
236
simdjson_really_inline simdjson_result<int64_t > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_int64() && noexcept {
212
237
if (error ()) { return error (); }
213
238
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first).get_int64 ();
214
239
}
215
- simdjson_really_inline simdjson_result<int64_t > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_int64 () & noexcept {
240
+ simdjson_really_inline simdjson_result<double > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_double () & noexcept {
216
241
if (error ()) { return error (); }
217
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first). get_int64 ();
242
+ return first. get_double ();
218
243
}
219
244
simdjson_really_inline simdjson_result<double > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_double() && noexcept {
220
245
if (error ()) { return error (); }
221
246
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first).get_double ();
222
247
}
223
- simdjson_really_inline simdjson_result<double > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_double () & noexcept {
248
+ simdjson_really_inline simdjson_result<std::string_view > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_string () & noexcept {
224
249
if (error ()) { return error (); }
225
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first). get_double ();
250
+ return first. get_string ();
226
251
}
227
252
simdjson_really_inline simdjson_result<std::string_view> simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_string() && noexcept {
228
253
if (error ()) { return error (); }
229
254
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first).get_string ();
230
255
}
231
- simdjson_really_inline simdjson_result<std::string_view > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_string () & noexcept {
256
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::raw_json_string > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_raw_json_string () & noexcept {
232
257
if (error ()) { return error (); }
233
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first). get_string ();
258
+ return first. get_raw_json_string ();
234
259
}
235
260
simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::raw_json_string> simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_raw_json_string() && noexcept {
236
261
if (error ()) { return error (); }
237
262
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first).get_raw_json_string ();
238
263
}
239
- simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::raw_json_string > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_raw_json_string () & noexcept {
264
+ simdjson_really_inline simdjson_result<bool > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_bool () & noexcept {
240
265
if (error ()) { return error (); }
241
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first). get_raw_json_string ();
266
+ return first. get_bool ();
242
267
}
243
268
simdjson_really_inline simdjson_result<bool > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_bool() && noexcept {
244
269
if (error ()) { return error (); }
245
270
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first).get_bool ();
246
271
}
247
- simdjson_really_inline simdjson_result<bool > simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::get_bool() & noexcept {
248
- if (error ()) { return error (); }
249
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first).get_bool ();
250
- }
251
- simdjson_really_inline bool simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::is_null() && noexcept {
272
+ simdjson_really_inline bool simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::is_null() & noexcept {
252
273
if (error ()) { return false ; }
253
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first) .is_null ();
274
+ return first.is_null ();
254
275
}
255
- simdjson_really_inline bool simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::is_null() & noexcept {
276
+ simdjson_really_inline bool simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::is_null() && noexcept {
256
277
if (error ()) { return false ; }
257
278
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first).is_null ();
258
279
}
@@ -287,66 +308,66 @@ template<> simdjson_really_inline error_code simdjson_result<SIMDJSON_IMPLEMENTA
287
308
}
288
309
289
310
#if SIMDJSON_EXCEPTIONS
290
- simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator SIMDJSON_IMPLEMENTATION::ondemand::array () && noexcept (false ) {
291
- if (error ()) { throw simdjson_error (error ()); }
292
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first);
293
- }
294
311
simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator SIMDJSON_IMPLEMENTATION::ondemand::array () & noexcept (false ) {
295
312
if (error ()) { throw simdjson_error (error ()); }
296
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first) ;
313
+ return first;
297
314
}
298
- simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator SIMDJSON_IMPLEMENTATION::ondemand::object () && noexcept (false ) {
315
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator SIMDJSON_IMPLEMENTATION::ondemand::array () && noexcept (false ) {
299
316
if (error ()) { throw simdjson_error (error ()); }
300
317
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first);
301
318
}
302
319
simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator SIMDJSON_IMPLEMENTATION::ondemand::object () & noexcept (false ) {
303
320
if (error ()) { throw simdjson_error (error ()); }
304
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first) ;
321
+ return first;
305
322
}
306
- simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator uint64_t () && noexcept (false ) {
323
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator SIMDJSON_IMPLEMENTATION::ondemand::object () && noexcept (false ) {
307
324
if (error ()) { throw simdjson_error (error ()); }
308
325
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first);
309
326
}
310
- simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator uint64_t () & noexcept (false ) {
327
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator uint64_t () && noexcept (false ) {
311
328
if (error ()) { throw simdjson_error (error ()); }
312
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first) ;
329
+ return first;
313
330
}
314
331
simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator int64_t () && noexcept (false ) {
315
332
if (error ()) { throw simdjson_error (error ()); }
316
333
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first);
317
334
}
318
- simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator int64_t () & noexcept (false ) {
335
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator uint64_t () & noexcept (false ) {
319
336
if (error ()) { throw simdjson_error (error ()); }
320
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first) ;
337
+ return first;
321
338
}
322
339
simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator double () && noexcept (false ) {
323
340
if (error ()) { throw simdjson_error (error ()); }
324
341
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first);
325
342
}
326
- simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator double () & noexcept (false ) {
343
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator int64_t () & noexcept (false ) {
327
344
if (error ()) { throw simdjson_error (error ()); }
328
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first) ;
345
+ return first;
329
346
}
330
347
simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator std::string_view () && noexcept (false ) {
331
348
if (error ()) { throw simdjson_error (error ()); }
332
349
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first);
333
350
}
334
- simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator std::string_view () & noexcept (false ) {
351
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator double () & noexcept (false ) {
335
352
if (error ()) { throw simdjson_error (error ()); }
336
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first) ;
353
+ return first;
337
354
}
338
355
simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator SIMDJSON_IMPLEMENTATION::ondemand::raw_json_string () && noexcept (false ) {
339
356
if (error ()) { throw simdjson_error (error ()); }
340
357
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first);
341
358
}
342
- simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator SIMDJSON_IMPLEMENTATION::ondemand::raw_json_string () & noexcept (false ) {
359
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator std::string_view () & noexcept (false ) {
343
360
if (error ()) { throw simdjson_error (error ()); }
344
- return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>( first) ;
361
+ return first;
345
362
}
346
363
simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator bool () && noexcept (false ) {
347
364
if (error ()) { throw simdjson_error (error ()); }
348
365
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first);
349
366
}
367
+ simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator SIMDJSON_IMPLEMENTATION::ondemand::raw_json_string () & noexcept (false ) {
368
+ if (error ()) { throw simdjson_error (error ()); }
369
+ return first;
370
+ }
350
371
simdjson_really_inline simdjson_result<SIMDJSON_IMPLEMENTATION::ondemand::value>::operator bool () & noexcept (false ) {
351
372
if (error ()) { throw simdjson_error (error ()); }
352
373
return std::forward<SIMDJSON_IMPLEMENTATION::ondemand::value>(first);
0 commit comments