@@ -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) ,
@@ -406,6 +410,20 @@ mod content {
406
410
Ok ( Content :: U64 ( value) )
407
411
}
408
412
413
+ fn visit_i128 < F > ( self , value : i128 ) -> Result < Self :: Value , F >
414
+ where
415
+ F : de:: Error ,
416
+ {
417
+ Ok ( Content :: I128 ( value) )
418
+ }
419
+
420
+ fn visit_u128 < F > ( self , value : u128 ) -> Result < Self :: Value , F >
421
+ where
422
+ F : de:: Error ,
423
+ {
424
+ Ok ( Content :: U128 ( value) )
425
+ }
426
+
409
427
fn visit_f32 < F > ( self , value : f32 ) -> Result < Self :: Value , F >
410
428
where
411
429
F : de:: Error ,
@@ -660,6 +678,24 @@ mod content {
660
678
. map ( TagOrContent :: Content )
661
679
}
662
680
681
+ fn visit_i128 < F > ( self , value : i128 ) -> Result < Self :: Value , F >
682
+ where
683
+ F : de:: Error ,
684
+ {
685
+ ContentVisitor :: new ( )
686
+ . visit_i128 ( value)
687
+ . map ( TagOrContent :: Content )
688
+ }
689
+
690
+ fn visit_u128 < F > ( self , value : u128 ) -> Result < Self :: Value , F >
691
+ where
692
+ F : de:: Error ,
693
+ {
694
+ ContentVisitor :: new ( )
695
+ . visit_u128 ( value)
696
+ . map ( TagOrContent :: Content )
697
+ }
698
+
663
699
fn visit_f32 < F > ( self , value : f32 ) -> Result < Self :: Value , F >
664
700
where
665
701
F : de:: Error ,
@@ -955,6 +991,17 @@ mod content {
955
991
}
956
992
}
957
993
994
+ fn visit_u128 < E > ( self , field_index : u128 ) -> Result < Self :: Value , E >
995
+ where
996
+ E : de:: Error ,
997
+ {
998
+ match field_index {
999
+ 0 => Ok ( TagOrContentField :: Tag ) ,
1000
+ 1 => Ok ( TagOrContentField :: Content ) ,
1001
+ _ => Err ( Unexpected :: invalid_u128 ( field_index, & self ) ) ,
1002
+ }
1003
+ }
1004
+
958
1005
fn visit_str < E > ( self , field : & str ) -> Result < Self :: Value , E >
959
1006
where
960
1007
E : de:: Error ,
@@ -1078,10 +1125,12 @@ mod content {
1078
1125
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
1079
1126
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
1080
1127
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1128
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1081
1129
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
1082
1130
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
1083
1131
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
1084
1132
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
1133
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
1085
1134
_ => Err ( self . invalid_type ( & visitor) ) ,
1086
1135
}
1087
1136
}
@@ -1097,10 +1146,12 @@ mod content {
1097
1146
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
1098
1147
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
1099
1148
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1149
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1100
1150
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
1101
1151
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
1102
1152
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
1103
1153
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
1154
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
1104
1155
_ => Err ( self . invalid_type ( & visitor) ) ,
1105
1156
}
1106
1157
}
@@ -1149,10 +1200,12 @@ mod content {
1149
1200
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
1150
1201
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
1151
1202
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1203
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1152
1204
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
1153
1205
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
1154
1206
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
1155
1207
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
1208
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
1156
1209
Content :: F32 ( v) => visitor. visit_f32 ( v) ,
1157
1210
Content :: F64 ( v) => visitor. visit_f64 ( v) ,
1158
1211
Content :: Char ( v) => visitor. visit_char ( v) ,
@@ -1207,6 +1260,13 @@ mod content {
1207
1260
self . deserialize_integer ( visitor)
1208
1261
}
1209
1262
1263
+ fn deserialize_i128 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1264
+ where
1265
+ V : Visitor < ' de > ,
1266
+ {
1267
+ self . deserialize_integer ( visitor)
1268
+ }
1269
+
1210
1270
fn deserialize_u8 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1211
1271
where
1212
1272
V : Visitor < ' de > ,
@@ -1235,6 +1295,13 @@ mod content {
1235
1295
self . deserialize_integer ( visitor)
1236
1296
}
1237
1297
1298
+ fn deserialize_u128 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1299
+ where
1300
+ V : Visitor < ' de > ,
1301
+ {
1302
+ self . deserialize_integer ( visitor)
1303
+ }
1304
+
1238
1305
fn deserialize_f32 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1239
1306
where
1240
1307
V : Visitor < ' de > ,
@@ -1486,6 +1553,7 @@ mod content {
1486
1553
Content :: Bytes ( v) => visitor. visit_borrowed_bytes ( v) ,
1487
1554
Content :: U8 ( v) => visitor. visit_u8 ( v) ,
1488
1555
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1556
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1489
1557
_ => Err ( self . invalid_type ( & visitor) ) ,
1490
1558
}
1491
1559
}
@@ -1667,10 +1735,12 @@ mod content {
1667
1735
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
1668
1736
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
1669
1737
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1738
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1670
1739
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
1671
1740
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
1672
1741
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
1673
1742
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
1743
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
1674
1744
_ => Err ( self . invalid_type ( & visitor) ) ,
1675
1745
}
1676
1746
}
@@ -1686,10 +1756,12 @@ mod content {
1686
1756
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
1687
1757
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
1688
1758
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1759
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1689
1760
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
1690
1761
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
1691
1762
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
1692
1763
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
1764
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
1693
1765
_ => Err ( self . invalid_type ( & visitor) ) ,
1694
1766
}
1695
1767
}
@@ -1748,10 +1820,12 @@ mod content {
1748
1820
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
1749
1821
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
1750
1822
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1823
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1751
1824
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
1752
1825
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
1753
1826
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
1754
1827
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
1828
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
1755
1829
Content :: F32 ( v) => visitor. visit_f32 ( v) ,
1756
1830
Content :: F64 ( v) => visitor. visit_f64 ( v) ,
1757
1831
Content :: Char ( v) => visitor. visit_char ( v) ,
@@ -1808,6 +1882,13 @@ mod content {
1808
1882
self . deserialize_integer ( visitor)
1809
1883
}
1810
1884
1885
+ fn deserialize_i128 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1886
+ where
1887
+ V : Visitor < ' de > ,
1888
+ {
1889
+ self . deserialize_integer ( visitor)
1890
+ }
1891
+
1811
1892
fn deserialize_u8 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1812
1893
where
1813
1894
V : Visitor < ' de > ,
@@ -1836,6 +1917,13 @@ mod content {
1836
1917
self . deserialize_integer ( visitor)
1837
1918
}
1838
1919
1920
+ fn deserialize_u128 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1921
+ where
1922
+ V : Visitor < ' de > ,
1923
+ {
1924
+ self . deserialize_integer ( visitor)
1925
+ }
1926
+
1839
1927
fn deserialize_f32 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1840
1928
where
1841
1929
V : Visitor < ' de > ,
@@ -2080,6 +2168,7 @@ mod content {
2080
2168
Content :: Bytes ( v) => visitor. visit_borrowed_bytes ( v) ,
2081
2169
Content :: U8 ( v) => visitor. visit_u8 ( v) ,
2082
2170
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
2171
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
2083
2172
_ => Err ( self . invalid_type ( & visitor) ) ,
2084
2173
}
2085
2174
}
@@ -2388,6 +2477,17 @@ where
2388
2477
}
2389
2478
}
2390
2479
2480
+ impl < ' de , E > IdentifierDeserializer < ' de , E > for u128
2481
+ where
2482
+ E : Error ,
2483
+ {
2484
+ type Deserializer = <u128 as IntoDeserializer < ' de , E > >:: Deserializer ;
2485
+
2486
+ fn from ( self ) -> Self :: Deserializer {
2487
+ self . into_deserializer ( )
2488
+ }
2489
+ }
2490
+
2391
2491
pub struct StrDeserializer < ' a , E > {
2392
2492
value : & ' a str ,
2393
2493
marker : PhantomData < E > ,
0 commit comments