Skip to content

Commit 5e83bf7

Browse files
committed
Clean up visit_object and visit_object_ref
These can now be replaced with a direct call to the Deserializer impl on Map (or &Map, as applicable).
1 parent aaee69e commit 5e83bf7

File tree

1 file changed

+12
-26
lines changed

1 file changed

+12
-26
lines changed

src/value/de.rs

Lines changed: 12 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -187,15 +187,6 @@ where
187187
}
188188
}
189189

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-
199190
impl<'de> serde::Deserializer<'de> for Map<String, Value> {
200191
type Error = Error;
201192

@@ -282,7 +273,7 @@ impl<'de> serde::Deserializer<'de> for Value {
282273
#[cfg(not(any(feature = "std", feature = "alloc")))]
283274
Value::String(_) => unreachable!(),
284275
Value::Array(v) => visit_array(v, visitor),
285-
Value::Object(v) => visit_object(v, visitor),
276+
Value::Object(v) => v.deserialize_any(visitor),
286277
}
287278
}
288279

@@ -461,7 +452,7 @@ impl<'de> serde::Deserializer<'de> for Value {
461452
V: Visitor<'de>,
462453
{
463454
match self {
464-
Value::Object(v) => visit_object(v, visitor),
455+
Value::Object(v) => v.deserialize_any(visitor),
465456
_ => Err(self.invalid_type(&visitor)),
466457
}
467458
}
@@ -477,7 +468,7 @@ impl<'de> serde::Deserializer<'de> for Value {
477468
{
478469
match self {
479470
Value::Array(v) => visit_array(v, visitor),
480-
Value::Object(v) => visit_object(v, visitor),
471+
Value::Object(v) => v.deserialize_any(visitor),
481472
_ => Err(self.invalid_type(&visitor)),
482473
}
483474
}
@@ -591,8 +582,10 @@ impl<'de> VariantAccess<'de> for VariantDeserializer {
591582
where
592583
V: Visitor<'de>,
593584
{
585+
use serde::de::Deserializer;
586+
594587
match self.value {
595-
Some(Value::Object(v)) => visit_object(v, visitor),
588+
Some(Value::Object(v)) => v.deserialize_any(visitor),
596589
Some(other) => Err(serde::de::Error::invalid_type(
597590
other.unexpected(),
598591
&"struct variant",
@@ -733,15 +726,6 @@ where
733726
}
734727
}
735728

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-
745729
impl<'de> serde::Deserializer<'de> for &'de Map<String, Value> {
746730
type Error = Error;
747731

@@ -823,7 +807,7 @@ impl<'de> serde::Deserializer<'de> for &'de Value {
823807
Value::Number(n) => n.deserialize_any(visitor),
824808
Value::String(v) => visitor.visit_borrowed_str(v),
825809
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),
827811
}
828812
}
829813

@@ -998,7 +982,7 @@ impl<'de> serde::Deserializer<'de> for &'de Value {
998982
V: Visitor<'de>,
999983
{
1000984
match self {
1001-
Value::Object(v) => visit_object_ref(v, visitor),
985+
Value::Object(v) => v.deserialize_any(visitor),
1002986
_ => Err(self.invalid_type(&visitor)),
1003987
}
1004988
}
@@ -1014,7 +998,7 @@ impl<'de> serde::Deserializer<'de> for &'de Value {
1014998
{
1015999
match self {
10161000
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),
10181002
_ => Err(self.invalid_type(&visitor)),
10191003
}
10201004
}
@@ -1111,8 +1095,10 @@ impl<'de> VariantAccess<'de> for VariantRefDeserializer<'de> {
11111095
where
11121096
V: Visitor<'de>,
11131097
{
1098+
use serde::de::Deserializer;
1099+
11141100
match self.value {
1115-
Some(Value::Object(v)) => visit_object_ref(v, visitor),
1101+
Some(Value::Object(v)) => v.deserialize_any(visitor),
11161102
Some(other) => Err(serde::de::Error::invalid_type(
11171103
other.unexpected(),
11181104
&"struct variant",

0 commit comments

Comments
 (0)