Merge ser::Serializer and ser::Visitor

This commit is contained in:
Erick Tryzelaar
2015-03-11 11:05:46 -07:00
parent fbd6d1974a
commit 3f62b6d2bf
6 changed files with 179 additions and 225 deletions
+2 -10
View File
@@ -7,7 +7,7 @@ extern crate serde;
use std::vec;
use std::collections::BTreeMap;
use serde::ser::{Serialize, Serializer, Visitor, SeqVisitor, MapVisitor};
use serde::ser::{Serialize, Serializer, SeqVisitor, MapVisitor};
#[derive(Clone, PartialEq, Debug)]
pub enum Token<'a> {
@@ -81,14 +81,6 @@ impl<'a> AssertSerializer<'a> {
impl<'a> Serializer for AssertSerializer<'a> {
type Error = ();
fn visit<T: Serialize>(&mut self, value: &T) -> Result<(), ()> {
value.visit(self)
}
}
impl<'a> Visitor for AssertSerializer<'a> {
type Error = ();
fn visit_unit(&mut self) -> Result<(), ()> {
assert_eq!(self.iter.next(), Some(Token::Unit));
Ok(())
@@ -322,7 +314,7 @@ macro_rules! declare_test {
fn $name() {
$(
let mut ser = AssertSerializer::new($tokens);
assert_eq!(ser.visit(&$value), Ok(()));
assert_eq!($value.visit(&mut ser), Ok(()));
)+
}
}