mirror of
https://github.com/serde-rs/serde.git
synced 2025-09-28 13:30:48 +00:00
test deserialize_from
This commit is contained in:
parent
e354dd0c7f
commit
34936be574
@ -16,7 +16,7 @@ serde = { version = "1.0.16", path = "../serde" }
|
|||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
serde = { version = "1.0.16", path = "../serde", features = ["rc"] }
|
serde = { version = "1.0.16", path = "../serde", features = ["rc"] }
|
||||||
serde_derive = { version = "1.0", path = "../serde_derive" }
|
serde_derive = { version = "1.0", path = "../serde_derive", features = ["deserialize_from"]}
|
||||||
|
|
||||||
[badges]
|
[badges]
|
||||||
travis-ci = { repository = "serde-rs/serde" }
|
travis-ci = { repository = "serde-rs/serde" }
|
||||||
|
@ -184,11 +184,27 @@ where
|
|||||||
T: Deserialize<'de> + PartialEq + Debug,
|
T: Deserialize<'de> + PartialEq + Debug,
|
||||||
{
|
{
|
||||||
let mut de = Deserializer::new(tokens);
|
let mut de = Deserializer::new(tokens);
|
||||||
match T::deserialize(&mut de) {
|
let mut deserialized_val = match T::deserialize(&mut de) {
|
||||||
Ok(v) => assert_eq!(v, *value),
|
Ok(v) => {
|
||||||
|
assert_eq!(v, *value);
|
||||||
|
v
|
||||||
|
}
|
||||||
Err(e) => panic!("tokens failed to deserialize: {}", e),
|
Err(e) => panic!("tokens failed to deserialize: {}", e),
|
||||||
|
};
|
||||||
|
if de.remaining() > 0 {
|
||||||
|
panic!("{} remaining tokens", de.remaining());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Do the same thing for deserialize_from. This isn't *great* because a no-op
|
||||||
|
// impl of deserialize_from can technically succeed here. Still, this should
|
||||||
|
// catch a lot of junk.
|
||||||
|
let mut de = Deserializer::new(tokens);
|
||||||
|
match deserialized_val.deserialize_from(&mut de) {
|
||||||
|
Ok(()) => {
|
||||||
|
assert_eq!(deserialized_val, *value);
|
||||||
|
}
|
||||||
|
Err(e) => panic!("tokens failed to deserialize_from: {}", e),
|
||||||
|
}
|
||||||
if de.remaining() > 0 {
|
if de.remaining() > 0 {
|
||||||
panic!("{} remaining tokens", de.remaining());
|
panic!("{} remaining tokens", de.remaining());
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user