mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-13 09:01:01 +00:00
Merge pull request #1286 from dtolnay/into128
Implement IntoDeserializer for i128 and u128
This commit is contained in:
@@ -218,6 +218,11 @@ primitive_deserializer!(f32, "an `f32`.", F32Deserializer, visit_f32);
|
|||||||
primitive_deserializer!(f64, "an `f64`.", F64Deserializer, visit_f64);
|
primitive_deserializer!(f64, "an `f64`.", F64Deserializer, visit_f64);
|
||||||
primitive_deserializer!(char, "a `char`.", CharDeserializer, visit_char);
|
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`.
|
/// A deserializer holding a `u32`.
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub struct U32Deserializer<E> {
|
pub struct U32Deserializer<E> {
|
||||||
|
|||||||
@@ -25,3 +25,21 @@ fn test_u32_to_enum() {
|
|||||||
let e: E = E::deserialize(deserializer).unwrap();
|
let e: E = E::deserialize(deserializer).unwrap();
|
||||||
assert_eq!(E::B, e);
|
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());
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user