File tree 1 file changed +4
-26
lines changed
1 file changed +4
-26
lines changed Original file line number Diff line number Diff line change @@ -512,21 +512,10 @@ impl<'de> VariantAccess<'de> for VariantDeserializer {
512
512
{
513
513
match self . value {
514
514
Some ( Value :: Array ( v) ) => {
515
- let len = v. len ( ) ;
516
- if len == 0 {
515
+ if v. is_empty ( ) {
517
516
visitor. visit_unit ( )
518
517
} 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)
530
519
}
531
520
}
532
521
Some ( other) => Err ( serde:: de:: Error :: invalid_type (
@@ -1006,21 +995,10 @@ impl<'de> VariantAccess<'de> for VariantRefDeserializer<'de> {
1006
995
{
1007
996
match self . value {
1008
997
Some ( & Value :: Array ( ref v) ) => {
1009
- let len = v. len ( ) ;
1010
- if len == 0 {
998
+ if v. is_empty ( ) {
1011
999
visitor. visit_unit ( )
1012
1000
} 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)
1024
1002
}
1025
1003
}
1026
1004
Some ( other) => Err ( serde:: de:: Error :: invalid_type (
You can’t perform that action at this time.
0 commit comments