diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ser/value.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/ser/value.rs b/src/ser/value.rs index 39d3af0..7a2ac42 100644 --- a/src/ser/value.rs +++ b/src/ser/value.rs @@ -158,13 +158,17 @@ impl<'key, 'target, Target> Serializer } fn serialize_none(&mut self) -> Result<(), Error> { - Err(Error::unsupported_value()) + if let Some(_) = self.key.take() { + Ok(()) + } else { + Err(Error::no_key()) + } } - fn serialize_some<T>(&mut self, _value: T) -> Result<(), Error> + fn serialize_some<T>(&mut self, value: T) -> Result<(), Error> where T: Serialize { - Err(Error::unsupported_value()) + value.serialize(self) } fn serialize_seq(&mut self, _len: Option<usize>) -> Result<(), Error> { |