@@ -236,10 +236,12 @@ mod content {
236
236
Content :: U16 ( n) => Content :: U16 ( * n) ,
237
237
Content :: U32 ( n) => Content :: U32 ( * n) ,
238
238
Content :: U64 ( n) => Content :: U64 ( * n) ,
239
+ Content :: U128 ( n) => Content :: U128 ( * n) ,
239
240
Content :: I8 ( n) => Content :: I8 ( * n) ,
240
241
Content :: I16 ( n) => Content :: I16 ( * n) ,
241
242
Content :: I32 ( n) => Content :: I32 ( * n) ,
242
243
Content :: I64 ( n) => Content :: I64 ( * n) ,
244
+ Content :: I128 ( n) => Content :: I128 ( * n) ,
243
245
Content :: F32 ( f) => Content :: F32 ( * f) ,
244
246
Content :: F64 ( f) => Content :: F64 ( * f) ,
245
247
Content :: Char ( c) => Content :: Char ( * c) ,
@@ -268,10 +270,12 @@ mod content {
268
270
Content :: U16 ( n) => Unexpected :: Unsigned ( n as u64 ) ,
269
271
Content :: U32 ( n) => Unexpected :: Unsigned ( n as u64 ) ,
270
272
Content :: U64 ( n) => Unexpected :: Unsigned ( n) ,
273
+ Content :: U128 ( _) => Unexpected :: Other ( "an u128" ) ,
271
274
Content :: I8 ( n) => Unexpected :: Signed ( n as i64 ) ,
272
275
Content :: I16 ( n) => Unexpected :: Signed ( n as i64 ) ,
273
276
Content :: I32 ( n) => Unexpected :: Signed ( n as i64 ) ,
274
277
Content :: I64 ( n) => Unexpected :: Signed ( n) ,
278
+ Content :: I128 ( _) => Unexpected :: Other ( "an i128" ) ,
275
279
Content :: F32 ( f) => Unexpected :: Float ( f as f64 ) ,
276
280
Content :: F64 ( f) => Unexpected :: Float ( f) ,
277
281
Content :: Char ( c) => Unexpected :: Char ( c) ,
@@ -380,6 +384,20 @@ mod content {
380
384
Ok ( Content :: U64 ( value) )
381
385
}
382
386
387
+ fn visit_i128 < F > ( self , value : i128 ) -> Result < Self :: Value , F >
388
+ where
389
+ F : de:: Error ,
390
+ {
391
+ Ok ( Content :: I128 ( value) )
392
+ }
393
+
394
+ fn visit_u128 < F > ( self , value : u128 ) -> Result < Self :: Value , F >
395
+ where
396
+ F : de:: Error ,
397
+ {
398
+ Ok ( Content :: U128 ( value) )
399
+ }
400
+
383
401
fn visit_f32 < F > ( self , value : f32 ) -> Result < Self :: Value , F >
384
402
where
385
403
F : de:: Error ,
@@ -638,6 +656,24 @@ mod content {
638
656
. map ( TagOrContent :: Content )
639
657
}
640
658
659
+ fn visit_i128 < F > ( self , value : i128 ) -> Result < Self :: Value , F >
660
+ where
661
+ F : de:: Error ,
662
+ {
663
+ ContentVisitor :: new ( )
664
+ . visit_i128 ( value)
665
+ . map ( TagOrContent :: Content )
666
+ }
667
+
668
+ fn visit_u128 < F > ( self , value : u128 ) -> Result < Self :: Value , F >
669
+ where
670
+ F : de:: Error ,
671
+ {
672
+ ContentVisitor :: new ( )
673
+ . visit_u128 ( value)
674
+ . map ( TagOrContent :: Content )
675
+ }
676
+
641
677
fn visit_f32 < F > ( self , value : f32 ) -> Result < Self :: Value , F >
642
678
where
643
679
F : de:: Error ,
@@ -936,6 +972,17 @@ mod content {
936
972
}
937
973
}
938
974
975
+ fn visit_u128 < E > ( self , field_index : u128 ) -> Result < Self :: Value , E >
976
+ where
977
+ E : de:: Error ,
978
+ {
979
+ match field_index {
980
+ 0 => Ok ( TagOrContentField :: Tag ) ,
981
+ 1 => Ok ( TagOrContentField :: Content ) ,
982
+ _ => Err ( Unexpected :: invalid_u128 ( field_index, & self ) ) ,
983
+ }
984
+ }
985
+
939
986
fn visit_str < E > ( self , field : & str ) -> Result < Self :: Value , E >
940
987
where
941
988
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
}
@@ -1133,10 +1184,12 @@ mod content {
1133
1184
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
1134
1185
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
1135
1186
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1187
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1136
1188
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
1137
1189
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
1138
1190
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
1139
1191
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
1192
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
1140
1193
Content :: F32 ( v) => visitor. visit_f32 ( v) ,
1141
1194
Content :: F64 ( v) => visitor. visit_f64 ( v) ,
1142
1195
Content :: Char ( v) => visitor. visit_char ( v) ,
@@ -1191,6 +1244,13 @@ mod content {
1191
1244
self . deserialize_integer ( visitor)
1192
1245
}
1193
1246
1247
+ fn deserialize_i128 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1248
+ where
1249
+ V : Visitor < ' de > ,
1250
+ {
1251
+ self . deserialize_integer ( visitor)
1252
+ }
1253
+
1194
1254
fn deserialize_u8 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1195
1255
where
1196
1256
V : Visitor < ' de > ,
@@ -1219,6 +1279,13 @@ mod content {
1219
1279
self . deserialize_integer ( visitor)
1220
1280
}
1221
1281
1282
+ fn deserialize_u128 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1283
+ where
1284
+ V : Visitor < ' de > ,
1285
+ {
1286
+ self . deserialize_integer ( visitor)
1287
+ }
1288
+
1222
1289
fn deserialize_f32 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
1223
1290
where
1224
1291
V : Visitor < ' de > ,
@@ -1470,6 +1537,7 @@ mod content {
1470
1537
Content :: Bytes ( v) => visitor. visit_borrowed_bytes ( v) ,
1471
1538
Content :: U8 ( v) => visitor. visit_u8 ( v) ,
1472
1539
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
1540
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
1473
1541
_ => Err ( self . invalid_type ( & visitor) ) ,
1474
1542
}
1475
1543
}
@@ -2012,10 +2080,12 @@ mod content {
2012
2080
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
2013
2081
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
2014
2082
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
2083
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
2015
2084
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
2016
2085
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
2017
2086
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
2018
2087
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
2088
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
2019
2089
_ => Err ( self . invalid_type ( & visitor) ) ,
2020
2090
}
2021
2091
}
@@ -2031,10 +2101,12 @@ mod content {
2031
2101
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
2032
2102
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
2033
2103
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
2104
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
2034
2105
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
2035
2106
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
2036
2107
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
2037
2108
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
2109
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
2038
2110
_ => Err ( self . invalid_type ( & visitor) ) ,
2039
2111
}
2040
2112
}
@@ -2087,10 +2159,12 @@ mod content {
2087
2159
Content :: U16 ( v) => visitor. visit_u16 ( v) ,
2088
2160
Content :: U32 ( v) => visitor. visit_u32 ( v) ,
2089
2161
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
2162
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
2090
2163
Content :: I8 ( v) => visitor. visit_i8 ( v) ,
2091
2164
Content :: I16 ( v) => visitor. visit_i16 ( v) ,
2092
2165
Content :: I32 ( v) => visitor. visit_i32 ( v) ,
2093
2166
Content :: I64 ( v) => visitor. visit_i64 ( v) ,
2167
+ Content :: I128 ( v) => visitor. visit_i128 ( v) ,
2094
2168
Content :: F32 ( v) => visitor. visit_f32 ( v) ,
2095
2169
Content :: F64 ( v) => visitor. visit_f64 ( v) ,
2096
2170
Content :: Char ( v) => visitor. visit_char ( v) ,
@@ -2147,6 +2221,13 @@ mod content {
2147
2221
self . deserialize_integer ( visitor)
2148
2222
}
2149
2223
2224
+ fn deserialize_i128 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
2225
+ where
2226
+ V : Visitor < ' de > ,
2227
+ {
2228
+ self . deserialize_integer ( visitor)
2229
+ }
2230
+
2150
2231
fn deserialize_u8 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
2151
2232
where
2152
2233
V : Visitor < ' de > ,
@@ -2175,6 +2256,13 @@ mod content {
2175
2256
self . deserialize_integer ( visitor)
2176
2257
}
2177
2258
2259
+ fn deserialize_u128 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
2260
+ where
2261
+ V : Visitor < ' de > ,
2262
+ {
2263
+ self . deserialize_integer ( visitor)
2264
+ }
2265
+
2178
2266
fn deserialize_f32 < V > ( self , visitor : V ) -> Result < V :: Value , Self :: Error >
2179
2267
where
2180
2268
V : Visitor < ' de > ,
@@ -2419,6 +2507,7 @@ mod content {
2419
2507
Content :: Bytes ( v) => visitor. visit_borrowed_bytes ( v) ,
2420
2508
Content :: U8 ( v) => visitor. visit_u8 ( v) ,
2421
2509
Content :: U64 ( v) => visitor. visit_u64 ( v) ,
2510
+ Content :: U128 ( v) => visitor. visit_u128 ( v) ,
2422
2511
_ => Err ( self . invalid_type ( & visitor) ) ,
2423
2512
}
2424
2513
}
@@ -3074,6 +3163,17 @@ where
3074
3163
}
3075
3164
}
3076
3165
3166
+ impl < ' de , E > IdentifierDeserializer < ' de , E > for u128
3167
+ where
3168
+ E : Error ,
3169
+ {
3170
+ type Deserializer = <u128 as IntoDeserializer < ' de , E > >:: Deserializer ;
3171
+
3172
+ fn from ( self ) -> Self :: Deserializer {
3173
+ self . into_deserializer ( )
3174
+ }
3175
+ }
3176
+
3077
3177
pub struct StrDeserializer < ' a , E > {
3078
3178
value : & ' a str ,
3079
3179
marker : PhantomData < E > ,
0 commit comments