@@ -227,11 +227,13 @@ mod content {
227
227
U16 ( u16 ) ,
228
228
U32 ( u32 ) ,
229
229
U64 ( u64 ) ,
230
+ U128 ( u128 ) ,
230
231
231
232
I8 ( i8 ) ,
232
233
I16 ( i16 ) ,
233
234
I32 ( i32 ) ,
234
235
I64 ( i64 ) ,
236
+ I128 ( i128 ) ,
235
237
236
238
F32 ( f32 ) ,
237
239
F64 ( f64 ) ,
@@ -270,10 +272,12 @@ mod content {
270
272
Content :: U16 ( n) => Unexpected :: Unsigned ( n as u64 ) ,
271
273
Content :: U32 ( n) => Unexpected :: Unsigned ( n as u64 ) ,
272
274
Content :: U64 ( n) => Unexpected :: Unsigned ( n) ,
275
+ Content :: U128 ( _) => Unexpected :: Other ( "an u128" ) ,
273
276
Content :: I8 ( n) => Unexpected :: Signed ( n as i64 ) ,
274
277
Content :: I16 ( n) => Unexpected :: Signed ( n as i64 ) ,
275
278
Content :: I32 ( n) => Unexpected :: Signed ( n as i64 ) ,
276
279
Content :: I64 ( n) => Unexpected :: Signed ( n) ,
280
+ Content :: I128 ( _) => Unexpected :: Other ( "an i128" ) ,
277
281
Content :: F32 ( f) => Unexpected :: Float ( f as f64 ) ,
278
282
Content :: F64 ( f) => Unexpected :: Float ( f) ,
279
283
Content :: Char ( c) => Unexpected :: Char ( c) ,
@@ -395,6 +399,20 @@ mod content {
395
399
Ok ( Content :: U64 ( value) )
396
400
}
397
401
402
+ fn visit_i128 < F > ( self , value : i128 ) -> Result < Self :: Value , F >
403
+ where
404
+ F : de:: Error ,
405
+ {
406
+ Ok ( Content :: I128 ( value) )
407
+ }
408
+
409
+ fn visit_u128 < F > ( self , value : u128 ) -> Result < Self :: Value , F >
410
+ where
411
+ F : de:: Error ,
412
+ {
413
+ Ok ( Content :: U128 ( value) )
414
+ }
415
+
398
416
fn visit_f32 < F > ( self , value : f32 ) -> Result < Self :: Value , F >
399
417
where
400
418
F : de:: Error ,
@@ -647,6 +665,24 @@ mod content {
647
665
. map ( TagOrContent :: Content )
648
666
}
649
667
668
+ fn visit_i128 < F > ( self , value : i128 ) -> Result < Self :: Value , F >
669
+ where
670
+ F : de:: Error ,
671
+ {
672
+ ContentVisitor :: new ( )
673
+ . visit_i128 ( value)
674
+ . map ( TagOrContent :: Content )
675
+ }
676
+
677
+ fn visit_u128 < F > ( self , value : u128 ) -> Result < Self :: Value , F >
678
+ where
679
+ F : de:: Error ,
680
+ {
681
+ ContentVisitor :: new ( )
682
+ . visit_u128 ( value)
683
+ . map ( TagOrContent :: Content )
684
+ }
685
+
650
686
fn visit_f32 < F > ( self , value : f32 ) -> Result < Self :: Value , F >
651
687
where
652
688
F : de:: Error ,
@@ -940,6 +976,17 @@ mod content {
940
976
}
941
977
}
942
978
979
+ fn visit_u128 < E > ( self , field_index : u128 ) -> Result < Self :: Value , E >
980
+ where
981
+ E : de:: Error ,
982
+ {
983
+ match field_index {
984
+ 0 => Ok ( TagOrContentField :: Tag ) ,
985
+ 1 => Ok ( TagOrContentField :: Content ) ,
986
+ _ => Err ( Unexpected :: invalid_u128 ( field_index, & self ) ) ,
987
+ }
988
+ }
989
+
943
990
fn visit_str < E > ( self , field : & str ) -> Result < Self :: Value , E >
944
991
where
945
992
E : de:: Error ,
@@ -1061,10 +1108,12 @@ mod content {
1061
1108
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
1062
1109
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
1063
1110
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1111
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1064
1112
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
1065
1113
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
1066
1114
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
1067
1115
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
1116
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
1068
1117
_ => Err ( self . invalid_type ( & visitor) ) ,
1069
1118
}
1070
1119
}
@@ -1080,10 +1129,12 @@ mod content {
1080
1129
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
1081
1130
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
1082
1131
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1132
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1083
1133
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
1084
1134
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
1085
1135
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
1086
1136
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
1137
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
1087
1138
_ => Err ( self . invalid_type ( & visitor) ) ,
1088
1139
}
1089
1140
}
@@ -1136,10 +1187,12 @@ mod content {
1136
1187
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
1137
1188
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
1138
1189
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1190
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1139
1191
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
1140
1192
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
1141
1193
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
1142
1194
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
1195
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
1143
1196
Content :: F32 ( v) => visitor. visit_f32 ( v) ,
1144
1197
Content :: F64 ( v) => visitor. visit_f64 ( v) ,
1145
1198
Content :: Char ( v) => visitor. visit_char ( v) ,
@@ -1194,6 +1247,13 @@ mod content {
1194
1247
self . deserialize_integer ( visitor)
1195
1248
}
1196
1249
1250
+ fn deserialize_i128 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1251
+ where
1252
+ V : Visitor < ' de > ,
1253
+ {
1254
+ self . deserialize_integer ( visitor)
1255
+ }
1256
+
1197
1257
fn deserialize_u8 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1198
1258
where
1199
1259
V : Visitor < ' de > ,
@@ -1222,6 +1282,13 @@ mod content {
1222
1282
self . deserialize_integer ( visitor)
1223
1283
}
1224
1284
1285
+ fn deserialize_u128 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1286
+ where
1287
+ V : Visitor < ' de > ,
1288
+ {
1289
+ self . deserialize_integer ( visitor)
1290
+ }
1291
+
1225
1292
fn deserialize_f32 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1226
1293
where
1227
1294
V : Visitor < ' de > ,
@@ -1473,6 +1540,7 @@ mod content {
1473
1540
Content :: Bytes ( v) => visitor. visit_borrowed_bytes ( v) ,
1474
1541
Content :: U8 ( v) => visitor. visit_u8 ( v) ,
1475
1542
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1543
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1476
1544
_ => Err ( self . invalid_type ( & visitor) ) ,
1477
1545
}
1478
1546
}
@@ -1654,10 +1722,12 @@ mod content {
1654
1722
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
1655
1723
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
1656
1724
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1725
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1657
1726
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
1658
1727
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
1659
1728
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
1660
1729
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
1730
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
1661
1731
_ => Err ( self . invalid_type ( & visitor) ) ,
1662
1732
}
1663
1733
}
@@ -1673,10 +1743,12 @@ mod content {
1673
1743
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
1674
1744
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
1675
1745
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1746
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1676
1747
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
1677
1748
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
1678
1749
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
1679
1750
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
1751
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
1680
1752
_ => Err ( self . invalid_type ( & visitor) ) ,
1681
1753
}
1682
1754
}
@@ -1735,10 +1807,12 @@ mod content {
1735
1807
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
1736
1808
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
1737
1809
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1810
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1738
1811
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
1739
1812
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
1740
1813
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
1741
1814
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
1815
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
1742
1816
Content :: F32 ( v) => visitor. visit_f32 ( v) ,
1743
1817
Content :: F64 ( v) => visitor. visit_f64 ( v) ,
1744
1818
Content :: Char ( v) => visitor. visit_char ( v) ,
@@ -1795,6 +1869,13 @@ mod content {
1795
1869
self . deserialize_integer ( visitor)
1796
1870
}
1797
1871
1872
+ fn deserialize_i128 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1873
+ where
1874
+ V : Visitor < ' de > ,
1875
+ {
1876
+ self . deserialize_integer ( visitor)
1877
+ }
1878
+
1798
1879
fn deserialize_u8 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1799
1880
where
1800
1881
V : Visitor < ' de > ,
@@ -1823,6 +1904,13 @@ mod content {
1823
1904
self . deserialize_integer ( visitor)
1824
1905
}
1825
1906
1907
+ fn deserialize_u128 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1908
+ where
1909
+ V : Visitor < ' de > ,
1910
+ {
1911
+ self . deserialize_integer ( visitor)
1912
+ }
1913
+
1826
1914
fn deserialize_f32 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1827
1915
where
1828
1916
V : Visitor < ' de > ,
@@ -2047,6 +2135,7 @@ mod content {
2047
2135
Content :: Bytes ( v) => visitor. visit_borrowed_bytes ( v) ,
2048
2136
Content :: U8 ( v) => visitor. visit_u8 ( v) ,
2049
2137
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
2138
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
2050
2139
_ => Err ( self . invalid_type ( & visitor) ) ,
2051
2140
}
2052
2141
}
@@ -2493,6 +2582,17 @@ where
2493
2582
}
2494
2583
}
2495
2584
2585
+ impl < ' de , E > IdentifierDeserializer < ' de , E > for u128
2586
+ where
2587
+ E : Error ,
2588
+ {
2589
+ type Deserializer = <u128 as IntoDeserializer < ' de , E > >:: Deserializer ;
2590
+
2591
+ fn from ( self ) -> Self :: Deserializer {
2592
+ self . into_deserializer ( )
2593
+ }
2594
+ }
2595
+
2496
2596
pub struct StrDeserializer < ' a , E > {
2497
2597
value : & ' a str ,
2498
2598
marker : PhantomData < E > ,
0 commit comments