Merge pull request #1286 from dtolnay/into128
Implement IntoDeserializer for i128 and u128
This commit is contained in:
commit
cd0b2d312c
@ -218,6 +218,11 @@ primitive_deserializer!(f32, "an `f32`.", F32Deserializer, visit_f32);
|
||||
primitive_deserializer!(f64, "an `f64`.", F64Deserializer, visit_f64);
|
||||
primitive_deserializer!(char, "a `char`.", CharDeserializer, visit_char);
|
||||
|
||||
serde_if_integer128! {
|
||||
primitive_deserializer!(i128, "an `i128`.", I128Deserializer, visit_i128);
|
||||
primitive_deserializer!(u128, "a `u128`.", U128Deserializer, visit_u128);
|
||||
}
|
||||
|
||||
/// A deserializer holding a `u32`.
|
||||
#[derive(Clone, Debug)]
|
||||
pub struct U32Deserializer<E> {
|
||||
|
@ -25,3 +25,21 @@ fn test_u32_to_enum() {
|
||||
let e: E = E::deserialize(deserializer).unwrap();
|
||||
assert_eq!(E::B, e);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_integer128() {
|
||||
let de_u128 = IntoDeserializer::<value::Error>::into_deserializer(1u128);
|
||||
let de_i128 = IntoDeserializer::<value::Error>::into_deserializer(1i128);
|
||||
|
||||
// u128 to u128
|
||||
assert_eq!(1u128, u128::deserialize(de_u128.clone()).unwrap());
|
||||
|
||||
// u128 to i128
|
||||
assert_eq!(1i128, i128::deserialize(de_u128.clone()).unwrap());
|
||||
|
||||
// i128 to u128
|
||||
assert_eq!(1u128, u128::deserialize(de_i128.clone()).unwrap());
|
||||
|
||||
// i128 to i128
|
||||
assert_eq!(1i128, i128::deserialize(de_i128.clone()).unwrap());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user