summaryrefslogtreecommitdiff
path: root/src/ser/key.rs
diff options
context:
space:
mode:
authorSam Scott <sam.scott89@gmail.com>2017-03-09 19:22:01 -0500
committerSam Scott <sam.scott89@gmail.com>2017-03-09 19:22:01 -0500
commit6aecad1c9a907c0dc567aef3388bb1857f9ed47d (patch)
treed07c5cdb1df9792333d65d1ae28ed153cf392ec1 /src/ser/key.rs
parent25ab41ec08a61e1894a500b26dd8e188c1e9015d (diff)
Support serializing sequences.
Diffstat (limited to 'src/ser/key.rs')
-rw-r--r--src/ser/key.rs22
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())
+ }
+}
+
+