From 21a58e86e44c51f27bd6f95a4c07adea0979111a Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Thu, 13 Nov 2014 07:54:44 -0800 Subject: [PATCH] Rename Serializable to Serialize, Deserializable to Deserialize --- benches/bench_enum.rs | 10 +-- benches/bench_log.rs | 38 ++++----- benches/bench_map.rs | 8 +- benches/bench_struct.rs | 14 ++-- benches/bench_vec.rs | 10 +-- serde_macros/src/lib.rs | 60 +++++++------- src/de.rs | 180 ++++++++++++++++++++-------------------- src/json/mod.rs | 142 +++++++++++++++---------------- src/lib.rs | 4 +- src/ser.rs | 124 +++++++++++++-------------- tests/json_struct.rs | 4 +- 11 files changed, 297 insertions(+), 297 deletions(-) diff --git a/benches/bench_enum.rs b/benches/bench_enum.rs index 62e02e42..7aa98712 100644 --- a/benches/bench_enum.rs +++ b/benches/bench_enum.rs @@ -11,12 +11,12 @@ use test::Bencher; use serialize::{Decoder, Decodable}; -use serde::de::{Deserializer, Deserializable}; +use serde::de::{Deserializer, Deserialize}; ////////////////////////////////////////////////////////////////////////////// #[deriving(Clone, PartialEq, Show, Decodable)] -#[deriving_deserializable] +#[deriving_deserialize] enum Animal { Dog, Frog(String, int) @@ -260,7 +260,7 @@ mod deserializer { #[inline] fn missing_field< - T: de::Deserializable + T: de::Deserialize >(&mut self, _field: &'static str) -> Result { Err(SyntaxError) } @@ -299,7 +299,7 @@ fn bench_deserializer_dog(b: &mut Bencher) { let animal = Dog; let mut d = deserializer::AnimalDeserializer::new(animal.clone()); - let value: Animal = Deserializable::deserialize(&mut d).unwrap(); + let value: Animal = Deserialize::deserialize(&mut d).unwrap(); assert_eq!(value, animal); }) @@ -311,7 +311,7 @@ fn bench_deserializer_frog(b: &mut Bencher) { let animal = Frog("Henry".to_string(), 349); let mut d = deserializer::AnimalDeserializer::new(animal.clone()); - let value: Animal = Deserializable::deserialize(&mut d).unwrap(); + let value: Animal = Deserialize::deserialize(&mut d).unwrap(); assert_eq!(value, animal); }) diff --git a/benches/bench_log.rs b/benches/bench_log.rs index 09c50efb..7929c031 100644 --- a/benches/bench_log.rs +++ b/benches/bench_log.rs @@ -14,12 +14,12 @@ use test::Bencher; use serde::de; use serde::json; -use serde::ser::Serializable; +use serde::ser::Serialize; use serde::ser; #[deriving(Encodable, Decodable)] -#[deriving_serializable] -#[deriving_deserializable] +#[deriving_serialize] +#[deriving_deserialize] struct Http { protocol: HttpProtocol, status: u32, @@ -39,14 +39,14 @@ enum HttpProtocol { HTTP11, } -impl, E> ser::Serializable for HttpProtocol { +impl, E> ser::Serialize for HttpProtocol { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_uint(*self as uint) } } -impl, E> de::Deserializable for HttpProtocol { +impl, E> de::Deserialize for HttpProtocol { #[inline] fn deserialize_token(d: &mut D, token: de::Token) -> Result { d.expect_from_primitive(token) @@ -68,14 +68,14 @@ enum HttpMethod { PATCH, } -impl, E> ser::Serializable for HttpMethod { +impl, E> ser::Serialize for HttpMethod { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_uint(*self as uint) } } -impl, E> de::Deserializable for HttpMethod { +impl, E> de::Deserialize for HttpMethod { #[inline] fn deserialize_token(d: &mut D, token: de::Token) -> Result { d.expect_from_primitive(token) @@ -90,14 +90,14 @@ enum CacheStatus { Hit, } -impl, E> ser::Serializable for CacheStatus { +impl, E> ser::Serialize for CacheStatus { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_uint(*self as uint) } } -impl, E> de::Deserializable for CacheStatus { +impl, E> de::Deserialize for CacheStatus { #[inline] fn deserialize_token(d: &mut D, token: de::Token) -> Result { d.expect_from_primitive(token) @@ -105,8 +105,8 @@ impl, E> de::Deserializable for CacheStatus { } #[deriving(Encodable, Decodable)] -#[deriving_serializable] -#[deriving_deserializable] +#[deriving_serialize] +#[deriving_deserialize] struct Origin { ip: String, port: u32, @@ -121,14 +121,14 @@ enum OriginProtocol { HTTPS, } -impl, E> ser::Serializable for OriginProtocol { +impl, E> ser::Serialize for OriginProtocol { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_uint(*self as uint) } } -impl, E> de::Deserializable for OriginProtocol { +impl, E> de::Deserialize for OriginProtocol { #[inline] fn deserialize_token(d: &mut D, token: de::Token) -> Result { d.expect_from_primitive(token) @@ -144,14 +144,14 @@ enum ZonePlan { ENT, } -impl, E> ser::Serializable for ZonePlan { +impl, E> ser::Serialize for ZonePlan { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_uint(*self as uint) } } -impl, E> de::Deserializable for ZonePlan { +impl, E> de::Deserialize for ZonePlan { #[inline] fn deserialize_token(d: &mut D, token: de::Token) -> Result { d.expect_from_primitive(token) @@ -418,14 +418,14 @@ enum Country { ZW, } -impl, E> ser::Serializable for Country { +impl, E> ser::Serialize for Country { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_uint(*self as uint) } } -impl, E> de::Deserializable for Country { +impl, E> de::Deserialize for Country { #[inline] fn deserialize_token(d: &mut D, token: de::Token) -> Result { d.expect_from_primitive(token) @@ -433,8 +433,8 @@ impl, E> de::Deserializable for Country { } #[deriving(Encodable, Decodable)] -#[deriving_serializable] -#[deriving_deserializable] +#[deriving_serialize] +#[deriving_deserialize] struct Log { timestamp: i64, zone_id: u32, diff --git a/benches/bench_map.rs b/benches/bench_map.rs index 82143989..c6674272 100644 --- a/benches/bench_map.rs +++ b/benches/bench_map.rs @@ -13,7 +13,7 @@ use test::Bencher; use serialize::{Decoder, Decodable}; -use serde::de::{Deserializer, Deserializable}; +use serde::de::{Deserializer, Deserialize}; ////////////////////////////////////////////////////////////////////////////// @@ -258,7 +258,7 @@ mod deserializer { #[inline] fn missing_field< - T: de::Deserializable + T: de::Deserialize >(&mut self, _field: &'static str) -> Result { Err(SyntaxError) } @@ -310,9 +310,9 @@ fn bench_decoder_100(b: &mut Bencher) { fn run_deserializer< D: Deserializer, E: Show, - T: Clone + PartialEq + Show + Deserializable + T: Clone + PartialEq + Show + Deserialize >(mut d: D, value: T) { - let v: T = Deserializable::deserialize(&mut d).unwrap(); + let v: T = Deserialize::deserialize(&mut d).unwrap(); assert_eq!(value, v); } diff --git a/benches/bench_struct.rs b/benches/bench_struct.rs index 24a80412..cfdc2a1d 100644 --- a/benches/bench_struct.rs +++ b/benches/bench_struct.rs @@ -12,12 +12,12 @@ use test::Bencher; use serialize::{Decoder, Decodable}; -use serde::de::{Deserializer, Deserializable}; +use serde::de::{Deserializer, Deserialize}; ////////////////////////////////////////////////////////////////////////////// #[deriving(Clone, PartialEq, Show, Decodable)] -#[deriving_deserializable] +#[deriving_deserialize] struct Inner { a: (), b: uint, @@ -27,7 +27,7 @@ struct Inner { ////////////////////////////////////////////////////////////////////////////// #[deriving(Clone, PartialEq, Show, Decodable)] -#[deriving_deserializable] +#[deriving_deserialize] struct Outer { inner: Vec, } @@ -387,7 +387,7 @@ mod deserializer { #[inline] fn missing_field< - T: de::Deserializable + T: de::Deserialize >(&mut self, field: &'static str) -> Result { Err(MissingField(field)) } @@ -468,7 +468,7 @@ fn bench_deserializer_0_0(b: &mut Bencher) { }; let mut d = deserializer::OuterDeserializer::new(outer.clone()); - let value: Outer = Deserializable::deserialize(&mut d).unwrap(); + let value: Outer = Deserialize::deserialize(&mut d).unwrap(); assert_eq!(value, outer); }) @@ -490,7 +490,7 @@ fn bench_deserializer_1_0(b: &mut Bencher) { }; let mut d = deserializer::OuterDeserializer::new(outer.clone()); - let value: Outer = Deserializable::deserialize(&mut d).unwrap(); + let value: Outer = Deserialize::deserialize(&mut d).unwrap(); assert_eq!(value, outer); }) @@ -517,7 +517,7 @@ fn bench_deserializer_1_5(b: &mut Bencher) { }; let mut d = deserializer::OuterDeserializer::new(outer.clone()); - let value: Outer = Deserializable::deserialize(&mut d).unwrap(); + let value: Outer = Deserialize::deserialize(&mut d).unwrap(); assert_eq!(value, outer); }) diff --git a/benches/bench_vec.rs b/benches/bench_vec.rs index f063c446..cd572f24 100644 --- a/benches/bench_vec.rs +++ b/benches/bench_vec.rs @@ -12,7 +12,7 @@ use test::Bencher; use serialize::{Decoder, Decodable}; -use serde::de::{Deserializer, Deserializable}; +use serde::de::{Deserializer, Deserialize}; ////////////////////////////////////////////////////////////////////////////// @@ -327,7 +327,7 @@ mod deserializer { #[inline] fn missing_field< - T: de::Deserializable + T: de::Deserialize >(&mut self, _field: &'static str) -> Result { Err(SyntaxError) } @@ -399,7 +399,7 @@ mod deserializer { #[inline] fn missing_field< - T: de::Deserializable + T: de::Deserialize >(&mut self, _field: &'static str) -> Result { Err(SyntaxError) } @@ -421,9 +421,9 @@ fn run_decoder< fn run_deserializer< D: Deserializer, E: Show, - T: Clone + PartialEq + Show + Deserializable + T: Clone + PartialEq + Show + Deserialize >(mut d: D, value: T) { - let v: T = Deserializable::deserialize(&mut d).unwrap(); + let v: T = Deserialize::deserialize(&mut d).unwrap(); assert_eq!(value, v); } diff --git a/serde_macros/src/lib.rs b/serde_macros/src/lib.rs index 876d5705..fd4ec19b 100644 --- a/serde_macros/src/lib.rs +++ b/serde_macros/src/lib.rs @@ -59,26 +59,26 @@ use rustc::plugin::Registry; #[doc(hidden)] pub fn plugin_registrar(reg: &mut Registry) { reg.register_syntax_extension( - token::intern("deriving_serializable"), - Decorator(box expand_deriving_serializable)); + token::intern("deriving_serialize"), + Decorator(box expand_deriving_serialize)); reg.register_syntax_extension( - token::intern("deriving_deserializable"), - Decorator(box expand_deriving_deserializable)); + token::intern("deriving_deserialize"), + Decorator(box expand_deriving_deserialize)); } -fn expand_deriving_serializable(cx: &mut ExtCtxt, - sp: Span, - mitem: &MetaItem, - item: &Item, - push: |P|) { +fn expand_deriving_serialize(cx: &mut ExtCtxt, + sp: Span, + mitem: &MetaItem, + item: &Item, + push: |P|) { let inline = cx.meta_word(sp, token::InternedString::new("inline")); let attrs = vec!(cx.attribute(sp, inline)); let trait_def = TraitDef { span: sp, attributes: vec!(), - path: Path::new_(vec!("serde", "ser", "Serializable"), None, + path: Path::new_(vec!("serde", "ser", "Serialize"), None, vec!(box Literal(Path::new_local("__S")), box Literal(Path::new_local("__E"))), true), additional_bounds: Vec::new(), @@ -109,7 +109,7 @@ fn expand_deriving_serializable(cx: &mut ExtCtxt, ), attributes: attrs, combine_substructure: combine_substructure(|a, b, c| { - serializable_substructure(a, b, c, item) + serialize_substructure(a, b, c, item) }), }) }; @@ -117,11 +117,10 @@ fn expand_deriving_serializable(cx: &mut ExtCtxt, trait_def.expand(cx, mitem, item, push) } -fn serializable_substructure(cx: &ExtCtxt, - span: Span, - substr: &Substructure, - item: &Item - ) -> P { +fn serialize_substructure(cx: &ExtCtxt, + span: Span, + substr: &Substructure, + item: &Item) -> P { let serializer = substr.nonself_args[0].clone(); match (&item.node, substr.fields) { @@ -193,19 +192,19 @@ fn serializable_substructure(cx: &ExtCtxt, }) } - _ => cx.bug("expected Struct or EnumMatching in deriving_serializable") + _ => cx.bug("expected Struct or EnumMatching in deriving_serialize") } } -pub fn expand_deriving_deserializable(cx: &mut ExtCtxt, - span: Span, - mitem: &MetaItem, - item: &Item, - push: |P|) { +pub fn expand_deriving_deserialize(cx: &mut ExtCtxt, + span: Span, + mitem: &MetaItem, + item: &Item, + push: |P|) { let trait_def = TraitDef { span: span, attributes: Vec::new(), - path: Path::new_(vec!("serde", "de", "Deserializable"), None, + path: Path::new_(vec!("serde", "de", "Deserialize"), None, vec!(box Literal(Path::new_local("__D")), box Literal(Path::new_local("__E"))), true), additional_bounds: Vec::new(), @@ -241,7 +240,7 @@ pub fn expand_deriving_deserializable(cx: &mut ExtCtxt, ), attributes: Vec::new(), combine_substructure: combine_substructure(|a, b, c| { - deserializable_substructure(a, b, c) + deserialize_substructure(a, b, c) }), }) }; @@ -249,8 +248,9 @@ pub fn expand_deriving_deserializable(cx: &mut ExtCtxt, trait_def.expand(cx, mitem, item, push) } -fn deserializable_substructure(cx: &mut ExtCtxt, span: Span, - substr: &Substructure) -> P { +fn deserialize_substructure(cx: &mut ExtCtxt, + span: Span, + substr: &Substructure) -> P { let deserializer = substr.nonself_args[0].clone(); let token = substr.nonself_args[1].clone(); @@ -275,7 +275,7 @@ fn deserializable_substructure(cx: &mut ExtCtxt, span: Span, deserializer, token) } - _ => cx.bug("expected StaticEnum or StaticStruct in deriving(Deserializable)") + _ => cx.bug("expected StaticEnum or StaticStruct in deriving(Deserialize)") } } @@ -372,7 +372,7 @@ fn deserialize_struct( Some(_) => unreachable!(), None => { let _: ::serde::de::IgnoreTokens = - try!(::serde::de::Deserializable::deserialize($deserializer)); + try!(::serde::de::Deserialize::deserialize($deserializer)); } } //try!($deserializer.ignore_field(token)) @@ -409,7 +409,7 @@ fn deserialize_enum( let arms: Vec = fields.iter() .enumerate() .map(|(i, &(name, span, ref parts))| { - let call = deserializable_static_fields( + let call = deserialize_static_fields( cx, span, name, @@ -441,7 +441,7 @@ fn deserialize_enum( /// Create a deserializer for a single enum variant/struct: /// - `outer_pat_ident` is the name of this enum variant/struct /// - `getarg` should retrieve the `uint`-th field with name `&str`. -fn deserializable_static_fields( +fn deserialize_static_fields( cx: &ExtCtxt, span: Span, outer_pat_ident: Ident, diff --git a/src/de.rs b/src/de.rs index 2fa78ae6..87e646df 100644 --- a/src/de.rs +++ b/src/de.rs @@ -177,7 +177,7 @@ macro_rules! to_result { } pub trait Deserializer: Iterator> { - /// Called when a `Deserializable` expected more tokens, but the + /// Called when a `Deserialize` expected more tokens, but the /// `Deserializer` was empty. fn end_of_stream_error(&mut self) -> E; @@ -190,15 +190,15 @@ pub trait Deserializer: Iterator> { /// Called when a value was unable to be coerced into another value. fn conversion_error(&mut self, token: Token) -> E; - /// Called when a `Deserializable` structure did not deserialize a field + /// Called when a `Deserialize` structure did not deserialize a field /// named `field`. fn missing_field< - T: Deserializable + T: Deserialize >(&mut self, field: &'static str) -> Result; - /// Called when a deserializable has decided to not consume this token. + /// Called when a `Deserialize` has decided to not consume this token. fn ignore_field(&mut self, _token: Token) -> Result<(), E> { - let _: IgnoreTokens = try!(Deserializable::deserialize(self)); + let _: IgnoreTokens = try!(Deserialize::deserialize(self)); Ok(()) } @@ -305,12 +305,12 @@ pub trait Deserializer: Iterator> { #[inline] fn expect_option< - T: Deserializable + T: Deserialize >(&mut self, token: Token) -> Result, E> { match token { Option(false) => Ok(None), Option(true) => { - let value: T = try!(Deserializable::deserialize(self)); + let value: T = try!(Deserialize::deserialize(self)); Ok(Some(value)) } token => Err(self.syntax_error(token, [OptionKind])), @@ -328,9 +328,9 @@ pub trait Deserializer: Iterator> { #[inline] fn expect_tuple_elt< - T: Deserializable + T: Deserialize >(&mut self) -> Result { - Deserializable::deserialize(self) + Deserialize::deserialize(self) } #[inline] @@ -377,9 +377,9 @@ pub trait Deserializer: Iterator> { #[inline] fn expect_struct_value< - T: Deserializable + T: Deserialize >(&mut self) -> Result { - Deserializable::deserialize(self) + Deserialize::deserialize(self) } #[inline] @@ -409,9 +409,9 @@ pub trait Deserializer: Iterator> { #[inline] fn expect_enum_elt< - T: Deserializable + T: Deserialize >(&mut self) -> Result { - Deserializable::deserialize(self) + Deserialize::deserialize(self) } #[inline] @@ -433,12 +433,12 @@ pub trait Deserializer: Iterator> { #[inline] fn expect_seq_elt_or_end< - T: Deserializable + T: Deserialize >(&mut self) -> Result, E> { match try!(self.expect_token()) { End => Ok(None), token => { - let value = try!(Deserializable::deserialize_token(self, token)); + let value = try!(Deserialize::deserialize_token(self, token)); Ok(Some(value)) } } @@ -447,7 +447,7 @@ pub trait Deserializer: Iterator> { #[inline] fn expect_seq< 'a, - T: Deserializable, + T: Deserialize, C: FromIterator >(&'a mut self, token: Token) -> Result { let len = try!(self.expect_seq_start(token)); @@ -476,14 +476,14 @@ pub trait Deserializer: Iterator> { #[inline] fn expect_map_elt_or_end< - K: Deserializable, - V: Deserializable + K: Deserialize, + V: Deserialize >(&mut self) -> Result, E> { match try!(self.expect_token()) { End => Ok(None), token => { - let key = try!(Deserializable::deserialize_token(self, token)); - let value = try!(Deserializable::deserialize(self)); + let key = try!(Deserialize::deserialize_token(self, token)); + let value = try!(Deserialize::deserialize(self)); Ok(Some((key, value))) } } @@ -492,8 +492,8 @@ pub trait Deserializer: Iterator> { #[inline] fn expect_map< 'a, - K: Deserializable, - V: Deserializable, + K: Deserialize, + V: Deserialize, C: FromIterator<(K, V)> >(&'a mut self, token: Token) -> Result { let len = try!(self.expect_map_start(token)); @@ -525,7 +525,7 @@ impl< 'a, D: Deserializer, E, - T: Deserializable + T: Deserialize > Iterator for SeqDeserializer<'a, D, E> { #[inline] fn next(&mut self) -> option::Option { @@ -556,8 +556,8 @@ impl< 'a, D: Deserializer, E, - K: Deserializable, - V: Deserializable + K: Deserialize, + V: Deserialize > Iterator<(K, V)> for MapDeserializer<'a, D, E> { #[inline] fn next(&mut self) -> option::Option<(K, V)> { @@ -578,11 +578,11 @@ impl< ////////////////////////////////////////////////////////////////////////////// -pub trait Deserializable, E> { +pub trait Deserialize, E> { #[inline] fn deserialize(d: &mut D) -> Result { let token = try!(d.expect_token()); - Deserializable::deserialize_token(d, token) + Deserialize::deserialize_token(d, token) } fn deserialize_token(d: &mut D, token: Token) -> Result; @@ -590,9 +590,9 @@ pub trait Deserializable, E> { ////////////////////////////////////////////////////////////////////////////// -macro_rules! impl_deserializable { +macro_rules! impl_deserialize { ($ty:ty, $method:ident) => { - impl, E> Deserializable for $ty { + impl, E> Deserialize for $ty { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result<$ty, E> { d.$method(token) @@ -601,55 +601,55 @@ macro_rules! impl_deserializable { } } -impl_deserializable!(bool, expect_bool) -impl_deserializable!(int, expect_num) -impl_deserializable!(i8, expect_num) -impl_deserializable!(i16, expect_num) -impl_deserializable!(i32, expect_num) -impl_deserializable!(i64, expect_num) -impl_deserializable!(uint, expect_num) -impl_deserializable!(u8, expect_num) -impl_deserializable!(u16, expect_num) -impl_deserializable!(u32, expect_num) -impl_deserializable!(u64, expect_num) -impl_deserializable!(f32, expect_num) -impl_deserializable!(f64, expect_num) -impl_deserializable!(char, expect_char) -impl_deserializable!(&'static str, expect_str) -impl_deserializable!(string::String, expect_string) +impl_deserialize!(bool, expect_bool) +impl_deserialize!(int, expect_num) +impl_deserialize!(i8, expect_num) +impl_deserialize!(i16, expect_num) +impl_deserialize!(i32, expect_num) +impl_deserialize!(i64, expect_num) +impl_deserialize!(uint, expect_num) +impl_deserialize!(u8, expect_num) +impl_deserialize!(u16, expect_num) +impl_deserialize!(u32, expect_num) +impl_deserialize!(u64, expect_num) +impl_deserialize!(f32, expect_num) +impl_deserialize!(f64, expect_num) +impl_deserialize!(char, expect_char) +impl_deserialize!(&'static str, expect_str) +impl_deserialize!(string::String, expect_string) ////////////////////////////////////////////////////////////////////////////// impl< D: Deserializer, E, - T: Deserializable -> Deserializable for Box { + T: Deserialize +> Deserialize for Box { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result, E> { - Ok(box try!(Deserializable::deserialize_token(d, token))) + Ok(box try!(Deserialize::deserialize_token(d, token))) } } impl< D: Deserializer, E, - T: Deserializable -> Deserializable for Rc { + T: Deserialize +> Deserialize for Rc { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result, E> { - Ok(Rc::new(try!(Deserializable::deserialize_token(d, token)))) + Ok(Rc::new(try!(Deserialize::deserialize_token(d, token)))) } } impl< D: Deserializer, E, - T: Deserializable + Send + Sync -> Deserializable for Arc { + T: Deserialize + Send + Sync +> Deserialize for Arc { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result, E> { - Ok(Arc::new(try!(Deserializable::deserialize_token(d, token)))) + Ok(Arc::new(try!(Deserialize::deserialize_token(d, token)))) } } @@ -658,8 +658,8 @@ impl< impl< D: Deserializer, E, - T: Deserializable -> Deserializable for option::Option { + T: Deserialize +> Deserialize for option::Option { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result, E> { d.expect_option(token) @@ -671,8 +671,8 @@ impl< impl< D: Deserializer, E, - T: Deserializable -> Deserializable for Vec { + T: Deserialize +> Deserialize for Vec { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result, E> { d.expect_seq(token) @@ -684,9 +684,9 @@ impl< impl< D: Deserializer, E, - K: Deserializable + Eq + Hash, - V: Deserializable -> Deserializable for HashMap { + K: Deserialize + Eq + Hash, + V: Deserialize +> Deserialize for HashMap { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result, E> { d.expect_map(token) @@ -696,9 +696,9 @@ impl< impl< D: Deserializer, E, - K: Deserializable + Ord, - V: Deserializable -> Deserializable for TreeMap { + K: Deserialize + Ord, + V: Deserialize +> Deserialize for TreeMap { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result, E> { d.expect_map(token) @@ -710,8 +710,8 @@ impl< impl< D: Deserializer, E, - T: Deserializable + Eq + Hash -> Deserializable for HashSet { + T: Deserialize + Eq + Hash +> Deserialize for HashSet { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result, E> { d.expect_seq(token) @@ -721,8 +721,8 @@ impl< impl< D: Deserializer, E, - T: Deserializable + Ord -> Deserializable for TreeSet { + T: Deserialize + Ord +> Deserialize for TreeSet { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result, E> { d.expect_seq(token) @@ -740,7 +740,7 @@ macro_rules! impl_deserialize_tuple { impl< D: Deserializer, E - > Deserializable for () { + > Deserialize for () { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result<(), E> { d.expect_null(token) @@ -751,8 +751,8 @@ macro_rules! impl_deserialize_tuple { impl< D: Deserializer, E, - $($name: Deserializable),* - > Deserializable for ($($name,)*) { + $($name: Deserialize),* + > Deserialize for ($($name,)*) { #[inline] #[allow(non_snake_case)] fn deserialize_token(d: &mut D, token: Token) -> Result<($($name,)*), E> { @@ -780,12 +780,12 @@ impl_deserialize_tuple! { T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, } /// recursive structures. pub struct IgnoreTokens; -impl, E> Deserializable for IgnoreTokens { +impl, E> Deserialize for IgnoreTokens { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result { match token { Option(true) => { - Deserializable::deserialize(d) + Deserialize::deserialize(d) } EnumStart(_, _, _) => { @@ -793,7 +793,7 @@ impl, E> Deserializable for IgnoreTokens { match try!(d.expect_token()) { End => { return Ok(IgnoreTokens); } token => { - let _: IgnoreTokens = try!(Deserializable::deserialize_token(d, token)); + let _: IgnoreTokens = try!(Deserialize::deserialize_token(d, token)); } } } @@ -804,7 +804,7 @@ impl, E> Deserializable for IgnoreTokens { match try!(d.expect_token()) { End => { return Ok(IgnoreTokens); } Str(_) | String(_) => { - let _: IgnoreTokens = try!(Deserializable::deserialize(d)); + let _: IgnoreTokens = try!(Deserialize::deserialize(d)); } _token => { return Err(d.syntax_error(token, [EndKind, StrKind, StringKind])); } } @@ -816,7 +816,7 @@ impl, E> Deserializable for IgnoreTokens { match try!(d.expect_token()) { End => { return Ok(IgnoreTokens); } token => { - let _: IgnoreTokens = try!(Deserializable::deserialize_token(d, token)); + let _: IgnoreTokens = try!(Deserialize::deserialize_token(d, token)); } } } @@ -827,7 +827,7 @@ impl, E> Deserializable for IgnoreTokens { match try!(d.expect_token()) { End => { return Ok(IgnoreTokens); } token => { - let _: IgnoreTokens = try!(Deserializable::deserialize_token(d, token)); + let _: IgnoreTokens = try!(Deserialize::deserialize_token(d, token)); } } } @@ -838,8 +838,8 @@ impl, E> Deserializable for IgnoreTokens { match try!(d.expect_token()) { End => { return Ok(IgnoreTokens); } token => { - let _: IgnoreTokens = try!(Deserializable::deserialize_token(d, token)); - let _: IgnoreTokens = try!(Deserializable::deserialize(d)); + let _: IgnoreTokens = try!(Deserialize::deserialize_token(d, token)); + let _: IgnoreTokens = try!(Deserialize::deserialize(d)); } } } @@ -967,7 +967,7 @@ impl GatherTokens { } } -impl, E> Deserializable for GatherTokens { +impl, E> Deserialize for GatherTokens { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result { let mut tokens = GatherTokens { @@ -986,7 +986,7 @@ mod tests { use std::{option, string}; use serialize::Decoder; - use super::{Deserializer, Deserializable, Token, TokenKind, IgnoreTokens}; + use super::{Deserializer, Deserialize, Token, TokenKind, IgnoreTokens}; use super::{ Null, Bool, @@ -1034,7 +1034,7 @@ mod tests { impl< D: Deserializer, E - > Deserializable for Inner { + > Deserialize for Inner { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result { try!(d.expect_struct_start(token, "Inner")); @@ -1056,7 +1056,7 @@ mod tests { Some(1) => { b = Some(try!(d.expect_struct_value())); } Some(2) => { c = Some(try!(d.expect_struct_value())); } Some(_) => unreachable!(), - None => { let _: IgnoreTokens = try!(Deserializable::deserialize(d)); } + None => { let _: IgnoreTokens = try!(Deserialize::deserialize(d)); } } } @@ -1071,7 +1071,7 @@ mod tests { inner: Vec, } - impl, E> Deserializable for Outer { + impl, E> Deserialize for Outer { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result { try!(d.expect_struct_start(token, "Outer")); @@ -1089,7 +1089,7 @@ mod tests { match idx { Some(0) => { inner = Some(try!(d.expect_struct_value())); } Some(_) => unreachable!(), - None => { let _: IgnoreTokens = try!(Deserializable::deserialize(d)); } + None => { let _: IgnoreTokens = try!(Deserialize::deserialize(d)); } } } @@ -1105,7 +1105,7 @@ mod tests { Frog(string::String, int) } - impl, E> Deserializable for Animal { + impl, E> Deserialize for Animal { #[inline] fn deserialize_token(d: &mut D, token: Token) -> Result { match try!(d.expect_enum_start(token, "Animal", ["Dog", "Frog"])) { @@ -1114,8 +1114,8 @@ mod tests { Ok(Dog) } 1 => { - let x0 = try!(Deserializable::deserialize(d)); - let x1 = try!(Deserializable::deserialize(d)); + let x0 = try!(Deserialize::deserialize(d)); + let x1 = try!(Deserialize::deserialize(d)); try!(d.expect_enum_end()); Ok(Frog(x0, x1)) } @@ -1179,7 +1179,7 @@ mod tests { #[inline] fn missing_field< - T: Deserializable, Error> + T: Deserialize, Error> >(&mut self, field: &'static str) -> Result { Err(MissingField(field)) } @@ -1193,7 +1193,7 @@ mod tests { fn $name() { $( let mut deserializer = TokenDeserializer::new($tokens.into_iter()); - let value: $ty = Deserializable::deserialize(&mut deserializer).unwrap(); + let value: $ty = Deserialize::deserialize(&mut deserializer).unwrap(); assert_eq!(value, $value); )+ diff --git a/src/json/mod.rs b/src/json/mod.rs index a89049a7..ccabaa1a 100644 --- a/src/json/mod.rs +++ b/src/json/mod.rs @@ -52,12 +52,12 @@ A simple JSON document serializing a person, his/her age, address and phone numb Rust provides a mechanism for low boilerplate serializing and deserializing of values to and from JSON via the serialization API. -To be able to serialize a piece of data, it must implement the `serde::Serializable` trait. -To be able to deserialize a piece of data, it must implement the `serde::Deserializable` trait. +To be able to serialize a piece of data, it must implement the `serde::Serialize` trait. +To be able to deserialize a piece of data, it must implement the `serde::Deserialize` trait. The Rust compiler provides an annotation to automatically generate -the code for these traits: `#[deriving_serializable]` and `#[deriving_deserializable]`. +the code for these traits: `#[deriving_serialize]` and `#[deriving_deserialize]`. -To serialize using `Serializable`: +To serialize using `Serialize`: ```rust #![feature(phase)] @@ -67,9 +67,9 @@ extern crate serde; use std::io::{MemWriter, AsRefWriter}; use serde::json; -use serde::Serializable; +use serde::Serialize; -#[deriving_serializable] +#[deriving_serialize] pub struct TestStruct { data_str: String, } @@ -90,7 +90,7 @@ fn main() { } ``` -Two wrapper functions are provided to serialize a Serializable object +Two wrapper functions are provided to serialize a `Serialize` object into a string (String) or buffer (~[u8]): `json::to_string(value)` and `json::to_vec(value)`. @@ -104,7 +104,7 @@ JSON API provide an enum `json::Json` and a trait `ToJson` to serialize object. The trait `ToJson` serialize object into a container `json::Json` and the API provide writer to serialize them into a stream or a string ... -When using `ToJson` the `Serializable` trait implementation is not mandatory. +When using `ToJson` the `Serialize` trait implementation is not mandatory. A basic `ToJson` example using a TreeMap of attribute name / attribute value: @@ -140,7 +140,7 @@ fn main() { } ``` -To deserialize a JSON string using `Deserializable` trait : +To deserialize a JSON string using `Deserialize` trait : ```rust #![feature(phase)] @@ -149,9 +149,9 @@ extern crate serde_macros; extern crate serde; use serde::json; -use serde::Deserializable; +use serde::Deserialize; -#[deriving_deserializable] +#[deriving_deserialize] pub struct MyStruct { attr1: u8, attr2: String, @@ -160,7 +160,7 @@ pub struct MyStruct { fn main() { let json_str_to_deserialize = "{ \"attr1\": 1, \"attr2\": \"toto\" }"; let mut parser = json::Parser::new(json_str_to_deserialize.bytes()); - let deserialized_object: MyStruct = match Deserializable::deserialize(&mut parser) { + let deserialized_object: MyStruct = match Deserialize::deserialize(&mut parser) { Ok(v) => v, Err(e) => panic!("Decoding error: {}", e) }; @@ -182,8 +182,8 @@ extern crate serde; use serde::json; -#[deriving_serializable] -#[deriving_deserializable] +#[deriving_serialize] +#[deriving_deserialize] pub struct TestStruct1 { data_int: u8, data_str: String, @@ -191,7 +191,7 @@ pub struct TestStruct1 { } // To serialize use the `json::to_string` to serialize an object in a string. -// It calls the generated `Serializable` impl. +// It calls the generated `Serialize` impl. fn main() { let to_serialize_object = TestStruct1 { data_int: 1, @@ -223,10 +223,10 @@ extern crate serde; use std::collections::TreeMap; use serde::json::ToJson; use serde::json; -use serde::Deserializable; +use serde::Deserialize; -#[deriving_serializable] // generate Serializable impl -#[deriving_deserializable] // generate Deserializable impl +#[deriving_serialize] // generate Serialize impl +#[deriving_deserialize] // generate Deserialize impl pub struct TestStruct1 { data_int: u8, data_str: String, @@ -257,7 +257,7 @@ fn main() { // Deserialize like before. let mut parser = json::Parser::new(json_str.as_slice().bytes()); - let deserialized: TestStruct1 = Deserializable::deserialize(&mut parser).unwrap(); + let deserialized: TestStruct1 = Deserialize::deserialize(&mut parser).unwrap(); } ``` @@ -279,7 +279,7 @@ use std::vec::Vec; use std::vec; use de; -use ser::Serializable; +use ser::Serialize; use ser; pub mod builder; @@ -498,7 +498,7 @@ impl fmt::Show for Json { } } -impl, E> ser::Serializable for Json { +impl, E> ser::Serialize for Json { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { match *self { @@ -527,7 +527,7 @@ impl, E> ser::Serializable for Json { } } -impl, E> de::Deserializable for Json { +impl, E> de::Deserialize for Json { #[inline] fn deserialize_token(d: &mut D, token: de::Token) -> Result { match token { @@ -549,18 +549,18 @@ impl, E> de::Deserializable for Json { de::Str(x) => Ok(String(x.to_string())), de::String(x) => Ok(String(x)), de::Option(false) => Ok(Null), - de::Option(true) => de::Deserializable::deserialize(d), + de::Option(true) => de::Deserialize::deserialize(d), de::TupleStart(_) | de::SeqStart(_) => { - let list = try!(de::Deserializable::deserialize_token(d, token)); + let list = try!(de::Deserialize::deserialize_token(d, token)); Ok(List(list)) } de::StructStart(_, _) | de::MapStart(_) => { - let object = try!(de::Deserializable::deserialize_token(d, token)); + let object = try!(de::Deserialize::deserialize_token(d, token)); Ok(Object(object)) } de::EnumStart(_, name, len) => { let token = de::SeqStart(len); - let fields: Vec = try!(de::Deserializable::deserialize_token(d, token)); + let fields: Vec = try!(de::Deserialize::deserialize_token(d, token)); let mut object = TreeMap::new(); object.insert(name.to_string(), List(fields)); Ok(Object(object)) @@ -668,22 +668,22 @@ impl de::Deserializer for JsonDeserializer { #[inline] fn missing_field< - T: de::Deserializable + T: de::Deserialize >(&mut self, _field: &'static str) -> Result { // JSON can represent `null` values as a missing value, so this isn't // necessarily an error. - de::Deserializable::deserialize_token(self, de::Null) + de::Deserialize::deserialize_token(self, de::Null) } // Special case treating options as a nullable value. #[inline] fn expect_option< - U: de::Deserializable + U: de::Deserialize >(&mut self, token: de::Token) -> Result, ParserError> { match token { de::Null => Ok(None), token => { - let value: U = try!(de::Deserializable::deserialize_token(self, token)); + let value: U = try!(de::Deserialize::deserialize_token(self, token)); Ok(Some(value)) } } @@ -1054,7 +1054,7 @@ impl ser::Serializer for Serializer { #[inline] fn serialize_tuple_elt< - T: Serializable, io::IoError> + T: Serialize, io::IoError> >(&mut self, value: &T) -> IoResult<()> { if self.first { self.first = false; @@ -1077,7 +1077,7 @@ impl ser::Serializer for Serializer { #[inline] fn serialize_struct_elt< - T: Serializable, io::IoError> + T: Serialize, io::IoError> >(&mut self, name: &str, value: &T) -> IoResult<()> { if self.first { self.first = false; @@ -1104,7 +1104,7 @@ impl ser::Serializer for Serializer { #[inline] fn serialize_enum_elt< - T: Serializable, io::IoError> + T: Serialize, io::IoError> >(&mut self, value: &T) -> IoResult<()> { if self.first { self.first = false; @@ -1121,7 +1121,7 @@ impl ser::Serializer for Serializer { #[inline] fn serialize_option< - T: Serializable, io::IoError> + T: Serialize, io::IoError> >(&mut self, v: &Option) -> IoResult<()> { match *v { Some(ref v) => { @@ -1135,7 +1135,7 @@ impl ser::Serializer for Serializer { #[inline] fn serialize_seq< - T: Serializable, io::IoError>, + T: Serialize, io::IoError>, Iter: Iterator >(&mut self, mut iter: Iter) -> IoResult<()> { try!(self.wr.write_str("[")); @@ -1154,8 +1154,8 @@ impl ser::Serializer for Serializer { #[inline] fn serialize_map< - K: Serializable, io::IoError>, - V: Serializable, io::IoError>, + K: Serialize, io::IoError>, + V: Serialize, io::IoError>, Iter: Iterator<(K, V)> >(&mut self, mut iter: Iter) -> IoResult<()> { //Warning: WriterFormatter was added to work around @@ -1319,7 +1319,7 @@ impl ser::Serializer for PrettySerializer { #[inline] fn serialize_tuple_elt< - T: Serializable, io::IoError> + T: Serialize, io::IoError> >(&mut self, value: &T) -> IoResult<()> { try!(self.serialize_sep()); value.serialize(self) @@ -1338,7 +1338,7 @@ impl ser::Serializer for PrettySerializer { #[inline] fn serialize_struct_elt< - T: Serializable, io::IoError> + T: Serialize, io::IoError> >(&mut self, name: &str, value: &T) -> IoResult<()> { try!(self.serialize_sep()); try!(self.serialize_str(name)); @@ -1363,7 +1363,7 @@ impl ser::Serializer for PrettySerializer { #[inline] fn serialize_enum_elt< - T: Serializable, io::IoError> + T: Serialize, io::IoError> >(&mut self, value: &T) -> IoResult<()> { try!(self.serialize_sep()); value.serialize(self) @@ -1377,7 +1377,7 @@ impl ser::Serializer for PrettySerializer { #[inline] fn serialize_option< - T: Serializable, io::IoError> + T: Serialize, io::IoError> >(&mut self, v: &Option) -> IoResult<()> { match *v { Some(ref v) => { @@ -1391,7 +1391,7 @@ impl ser::Serializer for PrettySerializer { #[inline] fn serialize_seq< - T: Serializable, io::IoError>, + T: Serialize, io::IoError>, Iter: Iterator >(&mut self, mut iter: Iter) -> IoResult<()> { try!(self.wr.write_str("[")); @@ -1407,8 +1407,8 @@ impl ser::Serializer for PrettySerializer { #[inline] fn serialize_map< - K: Serializable, io::IoError>, - V: Serializable, io::IoError>, + K: Serialize, io::IoError>, + V: Serialize, io::IoError>, Iter: Iterator<(K, V)> >(&mut self, mut iter: Iter) -> IoResult<()> { try!(self.wr.write_str("{")); @@ -1428,7 +1428,7 @@ impl ser::Serializer for PrettySerializer { /// Encode the specified struct into a json `[u8]` buffer. #[inline] pub fn to_vec< - T: ser::Serializable, io::IoError> + T: ser::Serialize, io::IoError> >(value: &T) -> Vec { let wr = MemWriter::with_capacity(1024); let mut serializer = Serializer::new(wr); @@ -1441,7 +1441,7 @@ pub fn to_vec< /// Encode the specified struct into a json `String` buffer. #[inline] pub fn to_string< - T: ser::Serializable, io::IoError> + T: ser::Serialize, io::IoError> >(value: &T) -> Result> { let buf = to_vec(value); string::String::from_utf8(buf) @@ -1449,7 +1449,7 @@ pub fn to_string< /// Encode the specified struct into a json `[u8]` buffer. pub fn to_pretty_vec< - T: ser::Serializable, io::IoError> + T: ser::Serialize, io::IoError> >(value: &T) -> Vec { let wr = MemWriter::new(); let mut serializer = PrettySerializer::new(wr); @@ -1459,7 +1459,7 @@ pub fn to_pretty_vec< /// Encode the specified struct into a json `String` buffer. pub fn to_pretty_string< - T: ser::Serializable, io::IoError> + T: ser::Serialize, io::IoError> >(value: &T) -> Result> { let buf = to_pretty_vec(value); string::String::from_utf8(buf) @@ -2147,22 +2147,22 @@ impl> de::Deserializer for Parser { #[inline] fn missing_field< - T: de::Deserializable, ParserError> + T: de::Deserialize, ParserError> >(&mut self, _field: &'static str) -> Result { // JSON can represent `null` values as a missing value, so this isn't // necessarily an error. - de::Deserializable::deserialize_token(self, de::Null) + de::Deserialize::deserialize_token(self, de::Null) } // Special case treating options as a nullable value. #[inline] fn expect_option< - U: de::Deserializable, ParserError> + U: de::Deserialize, ParserError> >(&mut self, token: de::Token) -> Result, ParserError> { match token { de::Null => Ok(None), token => { - let value: U = try!(de::Deserializable::deserialize_token(self, token)); + let value: U = try!(de::Deserialize::deserialize_token(self, token)); Ok(Some(value)) } } @@ -2244,10 +2244,10 @@ impl> de::Deserializer for Parser { /// Decodes a json value from an `Iterator`. pub fn from_iter< Iter: Iterator, - T: de::Deserializable, ParserError> + T: de::Deserialize, ParserError> >(iter: Iter) -> Result { let mut parser = Parser::new(iter); - let value = try!(de::Deserializable::deserialize(&mut parser)); + let value = try!(de::Deserialize::deserialize(&mut parser)); // Make sure the whole stream has been consumed. match parser.next() { @@ -2260,17 +2260,17 @@ pub fn from_iter< /// Decodes a json value from a string pub fn from_str< 'a, - T: de::Deserializable>, ParserError> + T: de::Deserialize>, ParserError> >(s: &'a str) -> Result { from_iter(s.bytes()) } /// Decodes a json value from a `Json`. pub fn from_json< - T: de::Deserializable + T: de::Deserialize >(json: Json) -> Result { let mut d = JsonDeserializer::new(json); - de::Deserializable::deserialize(&mut d) + de::Deserialize::deserialize(&mut d) } macro_rules! expect( @@ -2461,7 +2461,7 @@ mod tests { ListCommaOrEnd, }; use de; - use ser::{Serializable, Serializer}; + use ser::{Serialize, Serializer}; use ser; macro_rules! treemap { @@ -2473,8 +2473,8 @@ mod tests { } #[deriving(PartialEq, Show)] - #[deriving_serializable] - #[deriving_deserializable] + #[deriving_serialize] + #[deriving_deserialize] enum Animal { Dog, Frog(string::String, Vec) @@ -2502,8 +2502,8 @@ mod tests { } #[deriving(PartialEq, Show)] - #[deriving_serializable] - #[deriving_deserializable] + #[deriving_serialize] + #[deriving_deserialize] struct Inner { a: (), b: uint, @@ -2523,8 +2523,8 @@ mod tests { } #[deriving(PartialEq, Show)] - #[deriving_serializable] - #[deriving_deserializable] + #[deriving_serialize] + #[deriving_deserialize] struct Outer { inner: Vec, } @@ -2540,7 +2540,7 @@ mod tests { } fn test_encode_ok< - T: PartialEq + Show + ToJson + ser::Serializable, io::IoError> + T: PartialEq + Show + ToJson + ser::Serialize, io::IoError> >(errors: &[(T, &str)]) { for &(ref value, out) in errors.iter() { let out = out.to_string(); @@ -2554,7 +2554,7 @@ mod tests { } fn test_pretty_encode_ok< - T: PartialEq + Show + ToJson + ser::Serializable, io::IoError> + T: PartialEq + Show + ToJson + ser::Serialize, io::IoError> >(errors: &[(T, &str)]) { for &(ref value, out) in errors.iter() { let out = out.to_string(); @@ -2891,7 +2891,7 @@ mod tests { // FIXME (#5527): these could be merged once UFCS is finished. fn test_parse_err< 'a, - T: Show + de::Deserializable>, ParserError> + T: Show + de::Deserialize>, ParserError> >(errors: &[(&'a str, ParserError)]) { for &(s, ref err) in errors.iter() { let v: Result = from_str(s); @@ -2901,7 +2901,7 @@ mod tests { fn test_parse_ok< 'a, - T: PartialEq + Show + ToJson + de::Deserializable>, ParserError> + T: PartialEq + Show + ToJson + de::Deserialize>, ParserError> >(errors: &[(&'a str, T)]) { for &(s, ref value) in errors.iter() { let v: T = from_str(s).unwrap(); @@ -2913,7 +2913,7 @@ mod tests { } fn test_json_deserialize_ok< - T: PartialEq + Show + ToJson + de::Deserializable + T: PartialEq + Show + ToJson + de::Deserialize >(errors: &[T]) { for value in errors.iter() { let v: T = from_json(value.to_json()).unwrap(); @@ -3219,8 +3219,8 @@ mod tests { ]); #[deriving(PartialEq, Show)] - #[deriving_serializable] - #[deriving_deserializable] + #[deriving_serialize] + #[deriving_deserialize] struct Foo { x: Option, } diff --git a/src/lib.rs b/src/lib.rs index 41315e72..e2a61364 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -12,8 +12,8 @@ extern crate serde_macros; #[cfg(test)] extern crate serialize; -pub use ser::{Serializer, Serializable}; -pub use de::{Deserializer, Deserializable}; +pub use ser::{Serializer, Serialize}; +pub use de::{Deserializer, Deserialize}; pub mod de; pub mod ser; diff --git a/src/ser.rs b/src/ser.rs index a4adce4f..b338bf06 100644 --- a/src/ser.rs +++ b/src/ser.rs @@ -79,49 +79,49 @@ pub trait Serializer { fn serialize_tuple_start(&mut self, len: uint) -> Result<(), E>; fn serialize_tuple_elt< - T: Serializable + T: Serialize >(&mut self, v: &T) -> Result<(), E>; fn serialize_tuple_end(&mut self) -> Result<(), E>; fn serialize_struct_start(&mut self, name: &str, len: uint) -> Result<(), E>; fn serialize_struct_elt< - T: Serializable + T: Serialize >(&mut self, name: &str, v: &T) -> Result<(), E>; fn serialize_struct_end(&mut self) -> Result<(), E>; fn serialize_enum_start(&mut self, name: &str, variant: &str, len: uint) -> Result<(), E>; fn serialize_enum_elt< - T: Serializable + T: Serialize >(&mut self, v: &T) -> Result<(), E>; fn serialize_enum_end(&mut self) -> Result<(), E>; fn serialize_option< - T: Serializable + T: Serialize >(&mut self, v: &Option) -> Result<(), E>; fn serialize_seq< - T: Serializable, + T: Serialize, Iter: Iterator >(&mut self, iter: Iter) -> Result<(), E>; fn serialize_map< - K: Serializable, - V: Serializable, + K: Serialize, + V: Serialize, Iter: Iterator<(K, V)> >(&mut self, iter: Iter) -> Result<(), E>; } ////////////////////////////////////////////////////////////////////////////// -pub trait Serializable, E> { +pub trait Serialize, E> { fn serialize(&self, s: &mut S) -> Result<(), E>; } ////////////////////////////////////////////////////////////////////////////// -macro_rules! impl_serializable { +macro_rules! impl_serialize { ($ty:ty, $method:ident) => { - impl, E> Serializable for $ty { + impl, E> Serialize for $ty { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.$method(*self) @@ -130,31 +130,31 @@ macro_rules! impl_serializable { } } -impl_serializable!(bool, serialize_bool) -impl_serializable!(int, serialize_int) -impl_serializable!(i8, serialize_i8) -impl_serializable!(i16, serialize_i16) -impl_serializable!(i32, serialize_i32) -impl_serializable!(i64, serialize_i64) -impl_serializable!(uint, serialize_uint) -impl_serializable!(u8, serialize_u8) -impl_serializable!(u16, serialize_u16) -impl_serializable!(u32, serialize_u32) -impl_serializable!(u64, serialize_u64) -impl_serializable!(f32, serialize_f32) -impl_serializable!(f64, serialize_f64) -impl_serializable!(char, serialize_char) +impl_serialize!(bool, serialize_bool) +impl_serialize!(int, serialize_int) +impl_serialize!(i8, serialize_i8) +impl_serialize!(i16, serialize_i16) +impl_serialize!(i32, serialize_i32) +impl_serialize!(i64, serialize_i64) +impl_serialize!(uint, serialize_uint) +impl_serialize!(u8, serialize_u8) +impl_serialize!(u16, serialize_u16) +impl_serialize!(u32, serialize_u32) +impl_serialize!(u64, serialize_u64) +impl_serialize!(f32, serialize_f32) +impl_serialize!(f64, serialize_f64) +impl_serialize!(char, serialize_char) ////////////////////////////////////////////////////////////////////////////// -impl<'a, S: Serializer, E> Serializable for &'a str { +impl<'a, S: Serializer, E> Serialize for &'a str { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_str(*self) } } -impl, E> Serializable for String { +impl, E> Serialize for String { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { self.as_slice().serialize(s) @@ -163,14 +163,14 @@ impl, E> Serializable for String { ////////////////////////////////////////////////////////////////////////////// -macro_rules! impl_serializable_box { +macro_rules! impl_serialize_box { ($ty:ty) => { impl< 'a, S: Serializer, E, - T: Serializable - > Serializable for $ty { + T: Serialize + > Serialize for $ty { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { (**self).serialize(s) @@ -179,15 +179,15 @@ macro_rules! impl_serializable_box { } } -impl_serializable_box!(&'a T) -impl_serializable_box!(Box) -impl_serializable_box!(Rc) +impl_serialize_box!(&'a T) +impl_serialize_box!(Box) +impl_serialize_box!(Rc) impl< S: Serializer, E, - T: Serializable + Send + Sync -> Serializable for Arc { + T: Serialize + Send + Sync +> Serialize for Arc { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { (**self).serialize(s) @@ -199,8 +199,8 @@ impl< impl< S: Serializer, E, - T: Serializable -> Serializable for Option { + T: Serialize +> Serialize for Option { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_option(self) @@ -212,8 +212,8 @@ impl< impl< S: Serializer, E, - T: Serializable -> Serializable for Vec { + T: Serialize +> Serialize for Vec { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_seq(self.iter()) @@ -225,9 +225,9 @@ impl< impl< S: Serializer, E, - K: Serializable + Eq + Hash, - V: Serializable -> Serializable for HashMap { + K: Serialize + Eq + Hash, + V: Serialize +> Serialize for HashMap { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_map(self.iter()) @@ -237,9 +237,9 @@ impl< impl< S: Serializer, E, - K: Serializable + Ord, - V: Serializable -> Serializable for TreeMap { + K: Serialize + Ord, + V: Serialize +> Serialize for TreeMap { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_map(self.iter()) @@ -251,8 +251,8 @@ impl< impl< S: Serializer, E, - T: Serializable + Eq + Hash -> Serializable for HashSet { + T: Serialize + Eq + Hash +> Serialize for HashSet { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_seq(self.iter()) @@ -262,8 +262,8 @@ impl< impl< S: Serializer, E, - T: Serializable + Ord -> Serializable for TreeSet { + T: Serialize + Ord +> Serialize for TreeSet { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_seq(self.iter()) @@ -278,7 +278,7 @@ macro_rules! peel { macro_rules! impl_serialize_tuple { () => { - impl, E> Serializable for () { + impl, E> Serialize for () { #[inline] fn serialize(&self, s: &mut S) -> Result<(), E> { s.serialize_null() @@ -289,8 +289,8 @@ macro_rules! impl_serialize_tuple { impl< S: Serializer, E, - $($name:Serializable),+ - > Serializable for ($($name,)+) { + $($name:Serialize),+ + > Serialize for ($($name,)+) { #[inline] #[allow(non_snake_case)] fn serialize(&self, s: &mut S) -> Result<(), E> { @@ -323,12 +323,12 @@ mod tests { use serialize::Decoder; - use super::{Serializer, Serializable}; + use super::{Serializer, Serialize}; ////////////////////////////////////////////////////////////////////////////// #[deriving(Clone, PartialEq, Show, Decodable)] - #[deriving_serializable] + #[deriving_serialize] struct Inner { a: (), b: uint, @@ -338,7 +338,7 @@ mod tests { ////////////////////////////////////////////////////////////////////////////// #[deriving(Clone, PartialEq, Show, Decodable)] - #[deriving_serializable] + #[deriving_serialize] struct Outer { inner: Vec, } @@ -346,7 +346,7 @@ mod tests { ////////////////////////////////////////////////////////////////////////////// #[deriving(Clone, PartialEq, Show, Decodable)] - #[deriving_serializable] + #[deriving_serialize] enum Animal { Dog, Frog(String, int) @@ -494,7 +494,7 @@ mod tests { } fn serialize_tuple_elt< - T: Serializable, Error> + T: Serialize, Error> >(&mut self, value: &T) -> Result<(), Error> { try!(self.serialize(TupleSep)); value.serialize(self) @@ -509,7 +509,7 @@ mod tests { } fn serialize_struct_elt< - T: Serializable, Error> + T: Serialize, Error> >(&mut self, name: &str, value: &T) -> Result<(), Error> { try!(self.serialize(StructSep(name))); value.serialize(self) @@ -524,7 +524,7 @@ mod tests { } fn serialize_enum_elt< - T: Serializable, Error> + T: Serialize, Error> >(&mut self, value: &T) -> Result<(), Error> { try!(self.serialize(EnumSep)); value.serialize(self) @@ -535,7 +535,7 @@ mod tests { } fn serialize_option< - T: Serializable, Error> + T: Serialize, Error> >(&mut self, v: &option::Option) -> Result<(), Error> { match *v { Some(ref v) => { @@ -549,7 +549,7 @@ mod tests { } fn serialize_seq< - T: Serializable, Error>, + T: Serialize, Error>, SeqIter: Iterator >(&mut self, mut iter: SeqIter) -> Result<(), Error> { let (len, _) = iter.size_hint(); @@ -561,8 +561,8 @@ mod tests { } fn serialize_map< - K: Serializable, Error>, - V: Serializable, Error>, + K: Serialize, Error>, + V: Serialize, Error>, MapIter: Iterator<(K, V)> >(&mut self, mut iter: MapIter) -> Result<(), Error> { let (len, _) = iter.size_hint(); diff --git a/tests/json_struct.rs b/tests/json_struct.rs index ce53cedc..90469953 100644 --- a/tests/json_struct.rs +++ b/tests/json_struct.rs @@ -5,8 +5,8 @@ extern crate serde; extern crate serde_macros; #[deriving(PartialEq, Show)] -#[deriving_serializable] -#[deriving_deserializable] +#[deriving_serialize] +#[deriving_deserialize] struct Test { #[serial_name = "$schema"] schema: String,