mirror of
https://github.com/serde-rs/serde.git
synced 2025-09-28 05:21:05 +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]
|
||||
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]
|
||||
travis-ci = { repository = "serde-rs/serde" }
|
||||
|
@ -184,11 +184,27 @@ where
|
||||
T: Deserialize<'de> + PartialEq + Debug,
|
||||
{
|
||||
let mut de = Deserializer::new(tokens);
|
||||
match T::deserialize(&mut de) {
|
||||
Ok(v) => assert_eq!(v, *value),
|
||||
let mut deserialized_val = match T::deserialize(&mut de) {
|
||||
Ok(v) => {
|
||||
assert_eq!(v, *value);
|
||||
v
|
||||
}
|
||||
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 {
|
||||
panic!("{} remaining tokens", de.remaining());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user