summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/de/mod.rs13
-rw-r--r--src/ser.rs5
2 files changed, 14 insertions, 4 deletions
diff --git a/src/de/mod.rs b/src/de/mod.rs
index 3d8b508..62da6a5 100644
--- a/src/de/mod.rs
+++ b/src/de/mod.rs
@@ -654,6 +654,18 @@ impl<'de> de::Deserializer<'de> for ParsableStringDeserializer<'de> {
self.0.into_deserializer().deserialize_any(visitor)
}
+ fn deserialize_enum<V>(
+ self,
+ _: &'static str,
+ _: &'static [&'static str],
+ visitor: V,
+ ) -> Result<V::Value>
+ where
+ V: de::Visitor<'de>,
+ {
+ visitor.visit_enum(LevelDeserializer(Level::Flat(self.0)))
+ }
+
forward_to_deserialize_any! {
map
struct
@@ -670,7 +682,6 @@ impl<'de> de::Deserializer<'de> for ParsableStringDeserializer<'de> {
tuple_struct
identifier
tuple
- enum
ignored_any
}
diff --git a/src/ser.rs b/src/ser.rs
index 4fbacd9..50d3688 100644
--- a/src/ser.rs
+++ b/src/ser.rs
@@ -524,14 +524,13 @@ impl ser::Serializer for StringSerializer {
Err(Error::Unsupported)
}
- /// Returns an error.
fn serialize_unit_variant(
self,
_name: &'static str,
_variant_index: u32,
- _variant: &'static str,
+ variant: &'static str,
) -> Result<Self::Ok> {
- Err(Error::Unsupported)
+ Ok(variant.to_string())
}
/// Returns an error.