Improve "expecting" message of adjacently tagged enum variant

This commit is contained in:
David Tolnay
2023-08-01 22:43:26 -07:00
parent 9bd52ec5c1
commit ef4f860384
6 changed files with 36 additions and 35 deletions
+5 -5
View File
@@ -2841,13 +2841,13 @@ fn flat_map_take_entry<'de>(
}
pub struct AdjacentlyTaggedEnumVariantSeed<F> {
pub tag: &'static str,
pub enum_name: &'static str,
pub variants: &'static [&'static str],
pub fields_enum: PhantomData<F>,
}
pub struct AdjacentlyTaggedEnumVariantVisitor<F> {
tag: &'static str,
enum_name: &'static str,
fields_enum: PhantomData<F>,
}
@@ -2858,7 +2858,7 @@ where
type Value = F;
fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
write!(formatter, "enum {}", self.tag)
write!(formatter, "variant of enum {}", self.enum_name)
}
fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
@@ -2882,10 +2882,10 @@ where
D: Deserializer<'de>,
{
deserializer.deserialize_enum(
self.tag,
self.enum_name,
self.variants,
AdjacentlyTaggedEnumVariantVisitor {
tag: self.tag,
enum_name: self.enum_name,
fields_enum: PhantomData,
},
)
+2 -2
View File
@@ -1357,7 +1357,7 @@ where
}
pub struct AdjacentlyTaggedEnumVariant {
pub tag: &'static str,
pub enum_name: &'static str,
pub variant_index: u32,
pub variant_name: &'static str,
}
@@ -1367,6 +1367,6 @@ impl Serialize for AdjacentlyTaggedEnumVariant {
where
S: Serializer,
{
serializer.serialize_unit_variant(self.tag, self.variant_index, self.variant_name)
serializer.serialize_unit_variant(self.enum_name, self.variant_index, self.variant_name)
}
}