Skip to content

Commit

Permalink
Merge pull request #794 from dtolnay/visitarray
Browse files Browse the repository at this point in the history
Use existing helpers for running visit_seq over a Vec/slice
  • Loading branch information
dtolnay committed Aug 28, 2021
2 parents 604d5cf + 89cfb45 commit 7b4585f
Showing 1 changed file with 4 additions and 26 deletions.
30 changes: 4 additions & 26 deletions src/value/de.rs
Expand Up @@ -512,21 +512,10 @@ impl<'de> VariantAccess<'de> for VariantDeserializer {
{
match self.value {
Some(Value::Array(v)) => {
let len = v.len();
if len == 0 {
if v.is_empty() {
visitor.visit_unit()
} else {
let mut seq = SeqDeserializer::new(v);
let ret = tri!(visitor.visit_seq(&mut seq));
let remaining = seq.iter.len();
if remaining == 0 {
Ok(ret)
} else {
Err(serde::de::Error::invalid_length(
len,
&"fewer elements in array",
))
}
visit_array(v, visitor)
}
}
Some(other) => Err(serde::de::Error::invalid_type(
Expand Down Expand Up @@ -1006,21 +995,10 @@ impl<'de> VariantAccess<'de> for VariantRefDeserializer<'de> {
{
match self.value {
Some(&Value::Array(ref v)) => {
let len = v.len();
if len == 0 {
if v.is_empty() {
visitor.visit_unit()
} else {
let mut seq = SeqRefDeserializer::new(v);
let ret = tri!(visitor.visit_seq(&mut seq));
let remaining = seq.iter.len();
if remaining == 0 {
Ok(ret)
} else {
Err(serde::de::Error::invalid_length(
len,
&"fewer elements in array",
))
}
visit_array_ref(v, visitor)
}
}
Some(other) => Err(serde::de::Error::invalid_type(
Expand Down

0 comments on commit 7b4585f

Please sign in to comment.