@@ -187,15 +187,6 @@ where
187
187
}
188
188
}
189
189
190
- fn visit_object < ' de , V > ( object : Map < String , Value > , visitor : V ) -> Result < V :: Value , Error >
191
- where
192
- V : Visitor < ' de > ,
193
- {
194
- use serde:: de:: Deserializer ;
195
-
196
- object. deserialize_any ( visitor)
197
- }
198
-
199
190
impl < ' de > serde:: Deserializer < ' de > for Map < String , Value > {
200
191
type Error = Error ;
201
192
@@ -282,7 +273,7 @@ impl<'de> serde::Deserializer<'de> for Value {
282
273
#[ cfg( not( any( feature = "std" , feature = "alloc" ) ) ) ]
283
274
Value :: String ( _) => unreachable ! ( ) ,
284
275
Value :: Array ( v) => visit_array ( v, visitor) ,
285
- Value :: Object ( v) => visit_object ( v , visitor) ,
276
+ Value :: Object ( v) => v . deserialize_any ( visitor) ,
286
277
}
287
278
}
288
279
@@ -461,7 +452,7 @@ impl<'de> serde::Deserializer<'de> for Value {
461
452
V : Visitor < ' de > ,
462
453
{
463
454
match self {
464
- Value :: Object ( v) => visit_object ( v , visitor) ,
455
+ Value :: Object ( v) => v . deserialize_any ( visitor) ,
465
456
_ => Err ( self . invalid_type ( & visitor) ) ,
466
457
}
467
458
}
@@ -477,7 +468,7 @@ impl<'de> serde::Deserializer<'de> for Value {
477
468
{
478
469
match self {
479
470
Value :: Array ( v) => visit_array ( v, visitor) ,
480
- Value :: Object ( v) => visit_object ( v , visitor) ,
471
+ Value :: Object ( v) => v . deserialize_any ( visitor) ,
481
472
_ => Err ( self . invalid_type ( & visitor) ) ,
482
473
}
483
474
}
@@ -591,8 +582,10 @@ impl<'de> VariantAccess<'de> for VariantDeserializer {
591
582
where
592
583
V : Visitor < ' de > ,
593
584
{
585
+ use serde:: de:: Deserializer ;
586
+
594
587
match self . value {
595
- Some ( Value :: Object ( v) ) => visit_object ( v , visitor) ,
588
+ Some ( Value :: Object ( v) ) => v . deserialize_any ( visitor) ,
596
589
Some ( other) => Err ( serde:: de:: Error :: invalid_type (
597
590
other. unexpected ( ) ,
598
591
& "struct variant" ,
@@ -733,15 +726,6 @@ where
733
726
}
734
727
}
735
728
736
- fn visit_object_ref < ' de , V > ( object : & ' de Map < String , Value > , visitor : V ) -> Result < V :: Value , Error >
737
- where
738
- V : Visitor < ' de > ,
739
- {
740
- use serde:: de:: Deserializer ;
741
-
742
- object. deserialize_any ( visitor)
743
- }
744
-
745
729
impl < ' de > serde:: Deserializer < ' de > for & ' de Map < String , Value > {
746
730
type Error = Error ;
747
731
@@ -823,7 +807,7 @@ impl<'de> serde::Deserializer<'de> for &'de Value {
823
807
Value :: Number ( n) => n. deserialize_any ( visitor) ,
824
808
Value :: String ( v) => visitor. visit_borrowed_str ( v) ,
825
809
Value :: Array ( v) => visit_array_ref ( v, visitor) ,
826
- Value :: Object ( v) => visit_object_ref ( v , visitor) ,
810
+ Value :: Object ( v) => v . deserialize_any ( visitor) ,
827
811
}
828
812
}
829
813
@@ -998,7 +982,7 @@ impl<'de> serde::Deserializer<'de> for &'de Value {
998
982
V : Visitor < ' de > ,
999
983
{
1000
984
match self {
1001
- Value :: Object ( v) => visit_object_ref ( v , visitor) ,
985
+ Value :: Object ( v) => v . deserialize_any ( visitor) ,
1002
986
_ => Err ( self . invalid_type ( & visitor) ) ,
1003
987
}
1004
988
}
@@ -1014,7 +998,7 @@ impl<'de> serde::Deserializer<'de> for &'de Value {
1014
998
{
1015
999
match self {
1016
1000
Value :: Array ( v) => visit_array_ref ( v, visitor) ,
1017
- Value :: Object ( v) => visit_object_ref ( v , visitor) ,
1001
+ Value :: Object ( v) => v . deserialize_any ( visitor) ,
1018
1002
_ => Err ( self . invalid_type ( & visitor) ) ,
1019
1003
}
1020
1004
}
@@ -1111,8 +1095,10 @@ impl<'de> VariantAccess<'de> for VariantRefDeserializer<'de> {
1111
1095
where
1112
1096
V : Visitor < ' de > ,
1113
1097
{
1098
+ use serde:: de:: Deserializer ;
1099
+
1114
1100
match self . value {
1115
- Some ( Value :: Object ( v) ) => visit_object_ref ( v , visitor) ,
1101
+ Some ( Value :: Object ( v) ) => v . deserialize_any ( visitor) ,
1116
1102
Some ( other) => Err ( serde:: de:: Error :: invalid_type (
1117
1103
other. unexpected ( ) ,
1118
1104
& "struct variant" ,
0 commit comments