serde_keyvalue: remove enum wrapper

This wrapper type is useless as we can just implement the access traits
on KeyValueDeserializer directly.

BUG=b:218223240
TEST=cargo test -p serde_keyvalue

Change-Id: I5013b3fea2f0a2febf182a2fd42037d1cbdbe737
Reviewed-on: https://chromium-review.googlesource.com/c/crosvm/crosvm/+/3915037
Commit-Queue: Daniel Verkamp <dverkamp@chromium.org>
Reviewed-by: Daniel Verkamp <dverkamp@chromium.org>
Auto-Submit: Alexandre Courbot <acourbot@chromium.org>
This commit is contained in:
Alexandre Courbot 2022-09-22 13:42:12 +09:00 committed by crosvm LUCI
parent 0e0f125777
commit e1c1719b84

View file

@ -394,15 +394,7 @@ impl<'de> de::MapAccess<'de> for KeyValueDeserializer<'de> {
}
}
struct Enum<'a, 'de: 'a>(&'a mut KeyValueDeserializer<'de>);
impl<'a, 'de> Enum<'a, 'de> {
fn new(de: &'a mut KeyValueDeserializer<'de>) -> Self {
Self(de)
}
}
impl<'a, 'de> de::EnumAccess<'de> for Enum<'a, 'de> {
impl<'a, 'de> de::EnumAccess<'de> for &'a mut KeyValueDeserializer<'de> {
type Error = ParseError;
type Variant = Self;
@ -410,12 +402,12 @@ impl<'a, 'de> de::EnumAccess<'de> for Enum<'a, 'de> {
where
V: de::DeserializeSeed<'de>,
{
let val = seed.deserialize(&mut *self.0)?;
let val = seed.deserialize(&mut *self)?;
Ok((val, self))
}
}
impl<'a, 'de> de::VariantAccess<'de> for Enum<'a, 'de> {
impl<'a, 'de> de::VariantAccess<'de> for &'a mut KeyValueDeserializer<'de> {
type Error = ParseError;
fn unit_variant(self) -> Result<()> {
@ -699,7 +691,7 @@ impl<'de, 'a> de::Deserializer<'de> for &'a mut KeyValueDeserializer<'de> {
where
V: serde::de::Visitor<'de>,
{
visitor.visit_enum(Enum::new(self))
visitor.visit_enum(self)
}
fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value>