Skip to content

Commit c2540b0

Browse files
committed
Clean up deserialize_enum methods on Value and &Value
1 parent 5e83bf7 commit c2540b0

File tree

1 file changed

+22
-24
lines changed

1 file changed

+22
-24
lines changed

src/value/de.rs

+22-24
Original file line numberDiff line numberDiff line change
@@ -311,18 +311,17 @@ impl<'de> serde::Deserializer<'de> for Value {
311311
where
312312
V: Visitor<'de>,
313313
{
314-
let (variant, value) = match self {
315-
Value::Object(value) => return value.deserialize_enum(name, variants, visitor),
316-
Value::String(variant) => (variant, None),
317-
other => {
318-
return Err(serde::de::Error::invalid_type(
319-
other.unexpected(),
320-
&"string or map",
321-
));
322-
}
323-
};
324-
325-
visitor.visit_enum(EnumDeserializer { variant, value })
314+
match self {
315+
Value::Object(value) => value.deserialize_enum(name, variants, visitor),
316+
Value::String(variant) => visitor.visit_enum(EnumDeserializer {
317+
variant,
318+
value: None,
319+
}),
320+
other => Err(serde::de::Error::invalid_type(
321+
other.unexpected(),
322+
&"string or map",
323+
)),
324+
}
326325
}
327326

328327
#[inline]
@@ -843,18 +842,17 @@ impl<'de> serde::Deserializer<'de> for &'de Value {
843842
where
844843
V: Visitor<'de>,
845844
{
846-
let (variant, value) = match self {
847-
Value::Object(value) => return value.deserialize_enum(name, variants, visitor),
848-
Value::String(variant) => (variant, None),
849-
other => {
850-
return Err(serde::de::Error::invalid_type(
851-
other.unexpected(),
852-
&"string or map",
853-
));
854-
}
855-
};
856-
857-
visitor.visit_enum(EnumRefDeserializer { variant, value })
845+
match self {
846+
Value::Object(value) => value.deserialize_enum(name, variants, visitor),
847+
Value::String(variant) => visitor.visit_enum(EnumRefDeserializer {
848+
variant,
849+
value: None,
850+
}),
851+
other => Err(serde::de::Error::invalid_type(
852+
other.unexpected(),
853+
&"string or map",
854+
)),
855+
}
858856
}
859857

860858
#[inline]

0 commit comments

Comments
 (0)