Skip to content

Commit 89cfb45

Browse files
committed
Use existing helpers for running visit_seq over a Vec/slice
1 parent 604d5cf commit 89cfb45

File tree

1 file changed

+4
-26
lines changed

1 file changed

+4
-26
lines changed

src/value/de.rs

+4-26
Original file line numberDiff line numberDiff line change
@@ -512,21 +512,10 @@ impl<'de> VariantAccess<'de> for VariantDeserializer {
512512
{
513513
match self.value {
514514
Some(Value::Array(v)) => {
515-
let len = v.len();
516-
if len == 0 {
515+
if v.is_empty() {
517516
visitor.visit_unit()
518517
} else {
519-
let mut seq = SeqDeserializer::new(v);
520-
let ret = tri!(visitor.visit_seq(&mut seq));
521-
let remaining = seq.iter.len();
522-
if remaining == 0 {
523-
Ok(ret)
524-
} else {
525-
Err(serde::de::Error::invalid_length(
526-
len,
527-
&"fewer elements in array",
528-
))
529-
}
518+
visit_array(v, visitor)
530519
}
531520
}
532521
Some(other) => Err(serde::de::Error::invalid_type(
@@ -1006,21 +995,10 @@ impl<'de> VariantAccess<'de> for VariantRefDeserializer<'de> {
1006995
{
1007996
match self.value {
1008997
Some(&Value::Array(ref v)) => {
1009-
let len = v.len();
1010-
if len == 0 {
998+
if v.is_empty() {
1011999
visitor.visit_unit()
10121000
} else {
1013-
let mut seq = SeqRefDeserializer::new(v);
1014-
let ret = tri!(visitor.visit_seq(&mut seq));
1015-
let remaining = seq.iter.len();
1016-
if remaining == 0 {
1017-
Ok(ret)
1018-
} else {
1019-
Err(serde::de::Error::invalid_length(
1020-
len,
1021-
&"fewer elements in array",
1022-
))
1023-
}
1001+
visit_array_ref(v, visitor)
10241002
}
10251003
}
10261004
Some(other) => Err(serde::de::Error::invalid_type(

0 commit comments

Comments
 (0)