@@ -144,7 +144,10 @@ impl<'de> Deserialize<'de> for IgnoredAny {
144
144
//////////////////////////////////////////////////////////////////////////
145
145
146
146
#[ track_caller]
147
- fn test < ' de > ( value : impl Deserialize < ' de > + PartialEq + Debug , tokens : & ' de [ Token ] ) {
147
+ fn test < ' de , T > ( value : T , tokens : & ' de [ Token ] )
148
+ where
149
+ T : Deserialize < ' de > + PartialEq + Debug ,
150
+ {
148
151
// Test ser/de roundtripping
149
152
assert_de_tokens ( & value, tokens) ;
150
153
@@ -207,60 +210,319 @@ fn test_bool() {
207
210
}
208
211
209
212
#[ test]
210
- fn test_isize ( ) {
211
- test ( 0isize , & [ Token :: I8 ( 0 ) ] ) ;
212
- test ( 0isize , & [ Token :: I16 ( 0 ) ] ) ;
213
- test ( 0isize , & [ Token :: I32 ( 0 ) ] ) ;
214
- test ( 0isize , & [ Token :: I64 ( 0 ) ] ) ;
215
- test ( 0isize , & [ Token :: U8 ( 0 ) ] ) ;
216
- test ( 0isize , & [ Token :: U16 ( 0 ) ] ) ;
217
- test ( 0isize , & [ Token :: U32 ( 0 ) ] ) ;
218
- test ( 0isize , & [ Token :: U64 ( 0 ) ] ) ;
219
- }
220
-
221
- #[ test]
222
- fn test_ints ( ) {
223
- test ( 0i8 , & [ Token :: I8 ( 0 ) ] ) ;
224
- test ( 0i16 , & [ Token :: I16 ( 0 ) ] ) ;
225
- test ( 0i32 , & [ Token :: I32 ( 0 ) ] ) ;
226
- test ( 0i64 , & [ Token :: I64 ( 0 ) ] ) ;
227
- }
228
-
229
- #[ test]
230
- fn test_uints ( ) {
231
- test ( 0u8 , & [ Token :: U8 ( 0 ) ] ) ;
232
- test ( 0u16 , & [ Token :: U16 ( 0 ) ] ) ;
233
- test ( 0u32 , & [ Token :: U32 ( 0 ) ] ) ;
234
- test ( 0u64 , & [ Token :: U64 ( 0 ) ] ) ;
235
- }
236
-
237
- #[ test]
238
- fn test_floats ( ) {
239
- test ( 0f32 , & [ Token :: F32 ( 0. ) ] ) ;
240
- test ( 0f64 , & [ Token :: F64 ( 0. ) ] ) ;
213
+ fn test_i8 ( ) {
214
+ let test = test :: < i8 > ;
215
+
216
+ // from signed
217
+ test ( -128 , & [ Token :: I8 ( -128 ) ] ) ;
218
+ test ( -128 , & [ Token :: I16 ( -128 ) ] ) ;
219
+ test ( -128 , & [ Token :: I32 ( -128 ) ] ) ;
220
+ test ( -128 , & [ Token :: I64 ( -128 ) ] ) ;
221
+ test ( 127 , & [ Token :: I8 ( 127 ) ] ) ;
222
+ test ( 127 , & [ Token :: I16 ( 127 ) ] ) ;
223
+ test ( 127 , & [ Token :: I32 ( 127 ) ] ) ;
224
+ test ( 127 , & [ Token :: I64 ( 127 ) ] ) ;
225
+
226
+ // from unsigned
227
+ test ( 0 , & [ Token :: U8 ( 0 ) ] ) ;
228
+ test ( 0 , & [ Token :: U16 ( 0 ) ] ) ;
229
+ test ( 0 , & [ Token :: U32 ( 0 ) ] ) ;
230
+ test ( 0 , & [ Token :: U64 ( 0 ) ] ) ;
231
+ test ( 127 , & [ Token :: U8 ( 127 ) ] ) ;
232
+ test ( 127 , & [ Token :: U16 ( 127 ) ] ) ;
233
+ test ( 127 , & [ Token :: U32 ( 127 ) ] ) ;
234
+ test ( 127 , & [ Token :: U64 ( 127 ) ] ) ;
235
+ }
236
+
237
+ #[ test]
238
+ fn test_i16 ( ) {
239
+ let test = test :: < i16 > ;
240
+
241
+ // from signed
242
+ test ( -128 , & [ Token :: I8 ( -128 ) ] ) ;
243
+ test ( -32768 , & [ Token :: I16 ( -32768 ) ] ) ;
244
+ test ( -32768 , & [ Token :: I32 ( -32768 ) ] ) ;
245
+ test ( -32768 , & [ Token :: I64 ( -32768 ) ] ) ;
246
+ test ( 127 , & [ Token :: I8 ( 127 ) ] ) ;
247
+ test ( 32767 , & [ Token :: I16 ( 32767 ) ] ) ;
248
+ test ( 32767 , & [ Token :: I32 ( 32767 ) ] ) ;
249
+ test ( 32767 , & [ Token :: I64 ( 32767 ) ] ) ;
250
+
251
+ // from unsigned
252
+ test ( 0 , & [ Token :: U8 ( 0 ) ] ) ;
253
+ test ( 0 , & [ Token :: U16 ( 0 ) ] ) ;
254
+ test ( 0 , & [ Token :: U32 ( 0 ) ] ) ;
255
+ test ( 0 , & [ Token :: U64 ( 0 ) ] ) ;
256
+ test ( 255 , & [ Token :: U8 ( 255 ) ] ) ;
257
+ test ( 32767 , & [ Token :: U16 ( 32767 ) ] ) ;
258
+ test ( 32767 , & [ Token :: U32 ( 32767 ) ] ) ;
259
+ test ( 32767 , & [ Token :: U64 ( 32767 ) ] ) ;
260
+ }
261
+
262
+ #[ test]
263
+ fn test_i32 ( ) {
264
+ let test = test :: < i32 > ;
265
+
266
+ // from signed
267
+ test ( -128 , & [ Token :: I8 ( -128 ) ] ) ;
268
+ test ( -32768 , & [ Token :: I16 ( -32768 ) ] ) ;
269
+ test ( -2147483648 , & [ Token :: I32 ( -2147483648 ) ] ) ;
270
+ test ( -2147483648 , & [ Token :: I64 ( -2147483648 ) ] ) ;
271
+ test ( 127 , & [ Token :: I8 ( 127 ) ] ) ;
272
+ test ( 32767 , & [ Token :: I16 ( 32767 ) ] ) ;
273
+ test ( 2147483647 , & [ Token :: I32 ( 2147483647 ) ] ) ;
274
+ test ( 2147483647 , & [ Token :: I64 ( 2147483647 ) ] ) ;
275
+
276
+ // from unsigned
277
+ test ( 0 , & [ Token :: U8 ( 0 ) ] ) ;
278
+ test ( 0 , & [ Token :: U16 ( 0 ) ] ) ;
279
+ test ( 0 , & [ Token :: U32 ( 0 ) ] ) ;
280
+ test ( 0 , & [ Token :: U64 ( 0 ) ] ) ;
281
+ test ( 255 , & [ Token :: U8 ( 255 ) ] ) ;
282
+ test ( 65535 , & [ Token :: U16 ( 65535 ) ] ) ;
283
+ test ( 2147483647 , & [ Token :: U32 ( 2147483647 ) ] ) ;
284
+ test ( 2147483647 , & [ Token :: U64 ( 2147483647 ) ] ) ;
285
+ }
286
+
287
+ #[ test]
288
+ fn test_i64 ( ) {
289
+ let test = test :: < i64 > ;
290
+
291
+ // from signed
292
+ test ( -128 , & [ Token :: I8 ( -128 ) ] ) ;
293
+ test ( -32768 , & [ Token :: I16 ( -32768 ) ] ) ;
294
+ test ( -2147483648 , & [ Token :: I32 ( -2147483648 ) ] ) ;
295
+ test ( -9223372036854775808 , & [ Token :: I64 ( -9223372036854775808 ) ] ) ;
296
+ test ( 127 , & [ Token :: I8 ( 127 ) ] ) ;
297
+ test ( 32767 , & [ Token :: I16 ( 32767 ) ] ) ;
298
+ test ( 2147483647 , & [ Token :: I32 ( 2147483647 ) ] ) ;
299
+ test ( 9223372036854775807 , & [ Token :: I64 ( 9223372036854775807 ) ] ) ;
300
+
301
+ // from unsigned
302
+ test ( 0 , & [ Token :: U8 ( 0 ) ] ) ;
303
+ test ( 0 , & [ Token :: U16 ( 0 ) ] ) ;
304
+ test ( 0 , & [ Token :: U32 ( 0 ) ] ) ;
305
+ test ( 0 , & [ Token :: U64 ( 0 ) ] ) ;
306
+ test ( 255 , & [ Token :: U8 ( 255 ) ] ) ;
307
+ test ( 65535 , & [ Token :: U16 ( 65535 ) ] ) ;
308
+ test ( 4294967295 , & [ Token :: U32 ( 4294967295 ) ] ) ;
309
+ test ( 9223372036854775807 , & [ Token :: U64 ( 9223372036854775807 ) ] ) ;
310
+ }
311
+
312
+ #[ test]
313
+ fn test_i128 ( ) {
314
+ let test = test :: < i128 > ;
315
+
316
+ // from signed
317
+ test ( -128 , & [ Token :: I8 ( -128 ) ] ) ;
318
+ test ( -32768 , & [ Token :: I16 ( -32768 ) ] ) ;
319
+ test ( -2147483648 , & [ Token :: I32 ( -2147483648 ) ] ) ;
320
+ test ( -9223372036854775808 , & [ Token :: I64 ( -9223372036854775808 ) ] ) ;
321
+ test ( 127 , & [ Token :: I8 ( 127 ) ] ) ;
322
+ test ( 32767 , & [ Token :: I16 ( 32767 ) ] ) ;
323
+ test ( 2147483647 , & [ Token :: I32 ( 2147483647 ) ] ) ;
324
+ test ( 9223372036854775807 , & [ Token :: I64 ( 9223372036854775807 ) ] ) ;
325
+
326
+ // from unsigned
327
+ test ( 0 , & [ Token :: U8 ( 0 ) ] ) ;
328
+ test ( 0 , & [ Token :: U16 ( 0 ) ] ) ;
329
+ test ( 0 , & [ Token :: U32 ( 0 ) ] ) ;
330
+ test ( 0 , & [ Token :: U64 ( 0 ) ] ) ;
331
+ test ( 255 , & [ Token :: U8 ( 255 ) ] ) ;
332
+ test ( 65535 , & [ Token :: U16 ( 65535 ) ] ) ;
333
+ test ( 4294967295 , & [ Token :: U32 ( 4294967295 ) ] ) ;
334
+ test ( 18446744073709551615 , & [ Token :: U64 ( 18446744073709551615 ) ] ) ;
241
335
}
242
336
243
337
#[ test]
244
- fn test_small_int_to_128 ( ) {
245
- test ( 1i128 , & [ Token :: I8 ( 1 ) ] ) ;
246
- test ( 1i128 , & [ Token :: I16 ( 1 ) ] ) ;
247
- test ( 1i128 , & [ Token :: I32 ( 1 ) ] ) ;
248
- test ( 1i128 , & [ Token :: I64 ( 1 ) ] ) ;
249
-
250
- test ( 1i128 , & [ Token :: U8 ( 1 ) ] ) ;
251
- test ( 1i128 , & [ Token :: U16 ( 1 ) ] ) ;
252
- test ( 1i128 , & [ Token :: U32 ( 1 ) ] ) ;
253
- test ( 1i128 , & [ Token :: U64 ( 1 ) ] ) ;
254
-
255
- test ( 1u128 , & [ Token :: I8 ( 1 ) ] ) ;
256
- test ( 1u128 , & [ Token :: I16 ( 1 ) ] ) ;
257
- test ( 1u128 , & [ Token :: I32 ( 1 ) ] ) ;
258
- test ( 1u128 , & [ Token :: I64 ( 1 ) ] ) ;
259
-
260
- test ( 1u128 , & [ Token :: U8 ( 1 ) ] ) ;
261
- test ( 1u128 , & [ Token :: U16 ( 1 ) ] ) ;
262
- test ( 1u128 , & [ Token :: U32 ( 1 ) ] ) ;
263
- test ( 1u128 , & [ Token :: U64 ( 1 ) ] ) ;
338
+ fn test_isize ( ) {
339
+ let test = test :: < isize > ;
340
+
341
+ // from signed
342
+ test ( -10 , & [ Token :: I8 ( -10 ) ] ) ;
343
+ test ( -10 , & [ Token :: I16 ( -10 ) ] ) ;
344
+ test ( -10 , & [ Token :: I32 ( -10 ) ] ) ;
345
+ test ( -10 , & [ Token :: I64 ( -10 ) ] ) ;
346
+ test ( 10 , & [ Token :: I8 ( 10 ) ] ) ;
347
+ test ( 10 , & [ Token :: I16 ( 10 ) ] ) ;
348
+ test ( 10 , & [ Token :: I32 ( 10 ) ] ) ;
349
+ test ( 10 , & [ Token :: I64 ( 10 ) ] ) ;
350
+
351
+ // from unsigned
352
+ test ( 0 , & [ Token :: U8 ( 0 ) ] ) ;
353
+ test ( 0 , & [ Token :: U16 ( 0 ) ] ) ;
354
+ test ( 0 , & [ Token :: U32 ( 0 ) ] ) ;
355
+ test ( 0 , & [ Token :: U64 ( 0 ) ] ) ;
356
+ test ( 10 , & [ Token :: U8 ( 10 ) ] ) ;
357
+ test ( 10 , & [ Token :: U16 ( 10 ) ] ) ;
358
+ test ( 10 , & [ Token :: U32 ( 10 ) ] ) ;
359
+ test ( 10 , & [ Token :: U64 ( 10 ) ] ) ;
360
+ }
361
+
362
+ #[ test]
363
+ fn test_u8 ( ) {
364
+ let test = test :: < u8 > ;
365
+
366
+ // from signed
367
+ test ( 0 , & [ Token :: I8 ( 0 ) ] ) ;
368
+ test ( 0 , & [ Token :: I16 ( 0 ) ] ) ;
369
+ test ( 0 , & [ Token :: I32 ( 0 ) ] ) ;
370
+ test ( 0 , & [ Token :: I64 ( 0 ) ] ) ;
371
+ test ( 127 , & [ Token :: I8 ( 127 ) ] ) ;
372
+ test ( 255 , & [ Token :: I16 ( 255 ) ] ) ;
373
+ test ( 255 , & [ Token :: I32 ( 255 ) ] ) ;
374
+ test ( 255 , & [ Token :: I64 ( 255 ) ] ) ;
375
+
376
+ // from unsigned
377
+ test ( 0 , & [ Token :: U8 ( 0 ) ] ) ;
378
+ test ( 0 , & [ Token :: U16 ( 0 ) ] ) ;
379
+ test ( 0 , & [ Token :: U32 ( 0 ) ] ) ;
380
+ test ( 0 , & [ Token :: U64 ( 0 ) ] ) ;
381
+ test ( 255 , & [ Token :: U8 ( 255 ) ] ) ;
382
+ test ( 255 , & [ Token :: U16 ( 255 ) ] ) ;
383
+ test ( 255 , & [ Token :: U32 ( 255 ) ] ) ;
384
+ test ( 255 , & [ Token :: U64 ( 255 ) ] ) ;
385
+ }
386
+
387
+ #[ test]
388
+ fn test_u16 ( ) {
389
+ let test = test :: < u16 > ;
390
+
391
+ // from signed
392
+ test ( 0 , & [ Token :: I8 ( 0 ) ] ) ;
393
+ test ( 0 , & [ Token :: I16 ( 0 ) ] ) ;
394
+ test ( 0 , & [ Token :: I32 ( 0 ) ] ) ;
395
+ test ( 0 , & [ Token :: I64 ( 0 ) ] ) ;
396
+ test ( 127 , & [ Token :: I8 ( 127 ) ] ) ;
397
+ test ( 32767 , & [ Token :: I16 ( 32767 ) ] ) ;
398
+ test ( 65535 , & [ Token :: I32 ( 65535 ) ] ) ;
399
+ test ( 65535 , & [ Token :: I64 ( 65535 ) ] ) ;
400
+
401
+ // from unsigned
402
+ test ( 0 , & [ Token :: U8 ( 0 ) ] ) ;
403
+ test ( 0 , & [ Token :: U16 ( 0 ) ] ) ;
404
+ test ( 0 , & [ Token :: U32 ( 0 ) ] ) ;
405
+ test ( 0 , & [ Token :: U64 ( 0 ) ] ) ;
406
+ test ( 255 , & [ Token :: U8 ( 255 ) ] ) ;
407
+ test ( 65535 , & [ Token :: U16 ( 65535 ) ] ) ;
408
+ test ( 65535 , & [ Token :: U32 ( 65535 ) ] ) ;
409
+ test ( 65535 , & [ Token :: U64 ( 65535 ) ] ) ;
410
+ }
411
+
412
+ #[ test]
413
+ fn test_u32 ( ) {
414
+ let test = test :: < u32 > ;
415
+
416
+ // from signed
417
+ test ( 0 , & [ Token :: I8 ( 0 ) ] ) ;
418
+ test ( 0 , & [ Token :: I16 ( 0 ) ] ) ;
419
+ test ( 0 , & [ Token :: I32 ( 0 ) ] ) ;
420
+ test ( 0 , & [ Token :: I64 ( 0 ) ] ) ;
421
+ test ( 127 , & [ Token :: I8 ( 127 ) ] ) ;
422
+ test ( 32767 , & [ Token :: I16 ( 32767 ) ] ) ;
423
+ test ( 2147483647 , & [ Token :: I32 ( 2147483647 ) ] ) ;
424
+ test ( 4294967295 , & [ Token :: I64 ( 4294967295 ) ] ) ;
425
+
426
+ // from unsigned
427
+ test ( 0 , & [ Token :: U8 ( 0 ) ] ) ;
428
+ test ( 0 , & [ Token :: U16 ( 0 ) ] ) ;
429
+ test ( 0 , & [ Token :: U32 ( 0 ) ] ) ;
430
+ test ( 0 , & [ Token :: U64 ( 0 ) ] ) ;
431
+ test ( 255 , & [ Token :: U8 ( 255 ) ] ) ;
432
+ test ( 65535 , & [ Token :: U16 ( 65535 ) ] ) ;
433
+ test ( 4294967295 , & [ Token :: U32 ( 4294967295 ) ] ) ;
434
+ test ( 4294967295 , & [ Token :: U64 ( 4294967295 ) ] ) ;
435
+ }
436
+
437
+ #[ test]
438
+ fn test_u64 ( ) {
439
+ let test = test :: < u64 > ;
440
+
441
+ // from signed
442
+ test ( 0 , & [ Token :: I8 ( 0 ) ] ) ;
443
+ test ( 0 , & [ Token :: I16 ( 0 ) ] ) ;
444
+ test ( 0 , & [ Token :: I32 ( 0 ) ] ) ;
445
+ test ( 0 , & [ Token :: I64 ( 0 ) ] ) ;
446
+ test ( 127 , & [ Token :: I8 ( 127 ) ] ) ;
447
+ test ( 32767 , & [ Token :: I16 ( 32767 ) ] ) ;
448
+ test ( 2147483647 , & [ Token :: I32 ( 2147483647 ) ] ) ;
449
+ test ( 9223372036854775807 , & [ Token :: I64 ( 9223372036854775807 ) ] ) ;
450
+
451
+ // from unsigned
452
+ test ( 0 , & [ Token :: U8 ( 0 ) ] ) ;
453
+ test ( 0 , & [ Token :: U16 ( 0 ) ] ) ;
454
+ test ( 0 , & [ Token :: U32 ( 0 ) ] ) ;
455
+ test ( 0 , & [ Token :: U64 ( 0 ) ] ) ;
456
+ test ( 255 , & [ Token :: U8 ( 255 ) ] ) ;
457
+ test ( 65535 , & [ Token :: U16 ( 65535 ) ] ) ;
458
+ test ( 4294967295 , & [ Token :: U32 ( 4294967295 ) ] ) ;
459
+ test ( 18446744073709551615 , & [ Token :: U64 ( 18446744073709551615 ) ] ) ;
460
+ }
461
+
462
+ #[ test]
463
+ fn test_u128 ( ) {
464
+ let test = test :: < u128 > ;
465
+
466
+ // from signed
467
+ test ( 0 , & [ Token :: I8 ( 0 ) ] ) ;
468
+ test ( 0 , & [ Token :: I16 ( 0 ) ] ) ;
469
+ test ( 0 , & [ Token :: I32 ( 0 ) ] ) ;
470
+ test ( 0 , & [ Token :: I64 ( 0 ) ] ) ;
471
+ test ( 127 , & [ Token :: I8 ( 127 ) ] ) ;
472
+ test ( 32767 , & [ Token :: I16 ( 32767 ) ] ) ;
473
+ test ( 2147483647 , & [ Token :: I32 ( 2147483647 ) ] ) ;
474
+ test ( 9223372036854775807 , & [ Token :: I64 ( 9223372036854775807 ) ] ) ;
475
+
476
+ // from unsigned
477
+ test ( 0 , & [ Token :: U8 ( 0 ) ] ) ;
478
+ test ( 0 , & [ Token :: U16 ( 0 ) ] ) ;
479
+ test ( 0 , & [ Token :: U32 ( 0 ) ] ) ;
480
+ test ( 0 , & [ Token :: U64 ( 0 ) ] ) ;
481
+ test ( 255 , & [ Token :: U8 ( 255 ) ] ) ;
482
+ test ( 65535 , & [ Token :: U16 ( 65535 ) ] ) ;
483
+ test ( 4294967295 , & [ Token :: U32 ( 4294967295 ) ] ) ;
484
+ test ( 18446744073709551615 , & [ Token :: U64 ( 18446744073709551615 ) ] ) ;
485
+ }
486
+
487
+ #[ test]
488
+ fn test_usize ( ) {
489
+ let test = test :: < usize > ;
490
+
491
+ // from signed
492
+ test ( 0 , & [ Token :: I8 ( 0 ) ] ) ;
493
+ test ( 0 , & [ Token :: I16 ( 0 ) ] ) ;
494
+ test ( 0 , & [ Token :: I32 ( 0 ) ] ) ;
495
+ test ( 0 , & [ Token :: I64 ( 0 ) ] ) ;
496
+ test ( 10 , & [ Token :: I8 ( 10 ) ] ) ;
497
+ test ( 10 , & [ Token :: I16 ( 10 ) ] ) ;
498
+ test ( 10 , & [ Token :: I32 ( 10 ) ] ) ;
499
+ test ( 10 , & [ Token :: I64 ( 10 ) ] ) ;
500
+
501
+ // from unsigned
502
+ test ( 0 , & [ Token :: U8 ( 0 ) ] ) ;
503
+ test ( 0 , & [ Token :: U16 ( 0 ) ] ) ;
504
+ test ( 0 , & [ Token :: U32 ( 0 ) ] ) ;
505
+ test ( 0 , & [ Token :: U64 ( 0 ) ] ) ;
506
+ test ( 10 , & [ Token :: U8 ( 10 ) ] ) ;
507
+ test ( 10 , & [ Token :: U16 ( 10 ) ] ) ;
508
+ test ( 10 , & [ Token :: U32 ( 10 ) ] ) ;
509
+ test ( 10 , & [ Token :: U64 ( 10 ) ] ) ;
510
+ }
511
+
512
+ #[ test]
513
+ fn test_f32 ( ) {
514
+ let test = test :: < f32 > ;
515
+
516
+ test ( 1.11 , & [ Token :: F32 ( 1.11 ) ] ) ;
517
+ test ( 1.11 , & [ Token :: F64 ( 1.11 ) ] ) ;
518
+ }
519
+
520
+ #[ test]
521
+ fn test_f64 ( ) {
522
+ let test = test :: < f64 > ;
523
+
524
+ test ( 1.11f32 as f64 , & [ Token :: F32 ( 1.11 ) ] ) ;
525
+ test ( 1.11 , & [ Token :: F64 ( 1.11 ) ] ) ;
264
526
}
265
527
266
528
#[ test]
0 commit comments