diff options
author | Sam Scott <sam.scott89@gmail.com> | 2017-03-09 19:22:01 -0500 |
---|---|---|
committer | Sam Scott <sam.scott89@gmail.com> | 2017-03-09 19:22:01 -0500 |
commit | 6aecad1c9a907c0dc567aef3388bb1857f9ed47d (patch) | |
tree | d07c5cdb1df9792333d65d1ae28ed153cf392ec1 /src/ser/key.rs | |
parent | 25ab41ec08a61e1894a500b26dd8e188c1e9015d (diff) |
Support serializing sequences.
Diffstat (limited to 'src/ser/key.rs')
-rw-r--r-- | src/ser/key.rs | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/ser/key.rs b/src/ser/key.rs index a84f311..eb7ffae 100644 --- a/src/ser/key.rs +++ b/src/ser/key.rs @@ -1,5 +1,5 @@ use ser::{Error}; -use serde::ser::{SerializeStruct}; +use serde::ser::{SerializeSeq, SerializeStruct}; use ser::part::Sink; use serde::Serialize; use std::borrow::Cow; @@ -42,7 +42,7 @@ impl<End, Ok> KeySink<End> } } -impl<End, Ok> Sink for KeySink<End> +impl<End, Ok> Sink<Ok, Error> for KeySink<End> where End: for<'key> FnOnce(Key<'key>) -> Result<Ok, Error> { @@ -93,4 +93,22 @@ where End: for<'key> FnOnce(Key<'key>) -> Result<Ok, Error> } } +impl<End, Ok> SerializeSeq for KeySink<End> +where End: for<'key> FnOnce(Key<'key>) -> Result<Ok, Error> +{ + type Ok = Ok; + type Error = Error; + + fn serialize_element<T: ?Sized + Serialize>(&mut self, + _value: &T) + -> Result<(), Error> { + Err(Error::top_level()) + } + + fn end(self) -> Result<Self::Ok, Error> { + Err(self.unsupported()) + } +} + + |