Update serde_codegen for Serializer changes

This commit is contained in:
David Tolnay
2017-01-14 16:07:34 -08:00
parent 04f25eb122
commit f9885c4826
+15 -15
View File
@@ -30,7 +30,7 @@ pub fn expand_derive_serialize(item: &syn::MacroInput) -> Result<Tokens, String>
extern crate serde as _serde; extern crate serde as _serde;
#[automatically_derived] #[automatically_derived]
impl #impl_generics _serde::Serialize for #ty #where_clause { impl #impl_generics _serde::Serialize for #ty #where_clause {
fn serialize<__S>(&self, _serializer: &mut __S) -> ::std::result::Result<(), __S::Error> fn serialize<__S>(&self, _serializer: __S) -> ::std::result::Result<__S::Ok, __S::Error>
where __S: _serde::Serializer where __S: _serde::Serializer
{ {
#body #body
@@ -159,7 +159,7 @@ fn serialize_tuple_struct(
fields, fields,
impl_generics, impl_generics,
false, false,
Ident::new("serialize_tuple_struct_elt"), quote!(_serde::ser::SerializeTupleStruct::serialize_elem),
); );
let type_name = item_attrs.name().serialize_name(); let type_name = item_attrs.name().serialize_name();
@@ -169,7 +169,7 @@ fn serialize_tuple_struct(
quote! { quote! {
let #let_mut __serde_state = try!(_serializer.serialize_tuple_struct(#type_name, #len)); let #let_mut __serde_state = try!(_serializer.serialize_tuple_struct(#type_name, #len));
#(#serialize_stmts)* #(#serialize_stmts)*
_serializer.serialize_tuple_struct_end(__serde_state) _serde::ser::SerializeTupleStruct::serialize_end(__serde_state)
} }
} }
@@ -184,7 +184,7 @@ fn serialize_struct(
fields, fields,
impl_generics, impl_generics,
false, false,
Ident::new("serialize_struct_elt"), quote!(_serde::ser::SerializeStruct::serialize_field),
); );
let type_name = item_attrs.name().serialize_name(); let type_name = item_attrs.name().serialize_name();
@@ -210,7 +210,7 @@ fn serialize_struct(
quote! { quote! {
let #let_mut __serde_state = try!(_serializer.serialize_struct(#type_name, #len)); let #let_mut __serde_state = try!(_serializer.serialize_struct(#type_name, #len));
#(#serialize_fields)* #(#serialize_fields)*
_serializer.serialize_struct_end(__serde_state) _serde::ser::SerializeStruct::serialize_end(__serde_state)
} }
} }
@@ -373,7 +373,7 @@ fn serialize_tuple_variant(
fields, fields,
generics, generics,
true, true,
Ident::new("serialize_tuple_variant_elt"), quote!(_serde::ser::SerializeTupleVariant::serialize_elem),
); );
let len = serialize_stmts.len(); let len = serialize_stmts.len();
@@ -386,7 +386,7 @@ fn serialize_tuple_variant(
#variant_name, #variant_name,
#len)); #len));
#(#serialize_stmts)* #(#serialize_stmts)*
_serializer.serialize_tuple_variant_end(__serde_state) _serde::ser::SerializeTupleVariant::serialize_end(__serde_state)
} }
} }
@@ -403,7 +403,7 @@ fn serialize_struct_variant(
fields, fields,
generics, generics,
true, true,
Ident::new("serialize_struct_variant_elt"), quote!(_serde::ser::SerializeStructVariant::serialize_field),
); );
let item_name = item_attrs.name().serialize_name(); let item_name = item_attrs.name().serialize_name();
@@ -433,7 +433,7 @@ fn serialize_struct_variant(
#len, #len,
)); ));
#(#serialize_fields)* #(#serialize_fields)*
_serializer.serialize_struct_variant_end(__serde_state) _serde::ser::SerializeStructVariant::serialize_end(__serde_state)
} }
} }
@@ -442,7 +442,7 @@ fn serialize_tuple_struct_visitor(
fields: &[Field], fields: &[Field],
generics: &syn::Generics, generics: &syn::Generics,
is_enum: bool, is_enum: bool,
func: syn::Ident, func: Tokens,
) -> Vec<Tokens> { ) -> Vec<Tokens> {
fields.iter() fields.iter()
.enumerate() .enumerate()
@@ -464,7 +464,7 @@ fn serialize_tuple_struct_visitor(
} }
let ser = quote! { let ser = quote! {
try!(_serializer.#func(&mut __serde_state, #field_expr)); try!(#func(&mut __serde_state, #field_expr));
}; };
match skip { match skip {
@@ -480,7 +480,7 @@ fn serialize_struct_visitor(
fields: &[Field], fields: &[Field],
generics: &syn::Generics, generics: &syn::Generics,
is_enum: bool, is_enum: bool,
func: syn::Ident, func: Tokens,
) -> Vec<Tokens> { ) -> Vec<Tokens> {
fields.iter() fields.iter()
.filter(|&field| !field.attrs.skip_serializing()) .filter(|&field| !field.attrs.skip_serializing())
@@ -503,7 +503,7 @@ fn serialize_struct_visitor(
} }
let ser = quote! { let ser = quote! {
try!(_serializer.#func(&mut __serde_state, #key_expr, #field_expr)); try!(#func(&mut __serde_state, #key_expr, #field_expr));
}; };
match skip { match skip {
@@ -541,7 +541,7 @@ fn wrap_serialize_with(
} }
impl #wrapper_generics _serde::Serialize for #wrapper_ty #where_clause { impl #wrapper_generics _serde::Serialize for #wrapper_ty #where_clause {
fn serialize<__S>(&self, __s: &mut __S) -> ::std::result::Result<(), __S::Error> fn serialize<__S>(&self, __s: __S) -> ::std::result::Result<__S::Ok, __S::Error>
where __S: _serde::Serializer where __S: _serde::Serializer
{ {
#path(self.value, __s) #path(self.value, __s)
@@ -558,7 +558,7 @@ fn wrap_serialize_with(
// Serialization of an empty struct results in code like: // Serialization of an empty struct results in code like:
// //
// let mut __serde_state = try!(serializer.serialize_struct("S", 0)); // let mut __serde_state = try!(serializer.serialize_struct("S", 0));
// serializer.serialize_struct_end(__serde_state) // _serde::ser::SerializeStruct::serialize_end(__serde_state)
// //
// where we want to omit the `mut` to avoid a warning. // where we want to omit the `mut` to avoid a warning.
fn mut_if(is_mut: bool) -> Option<Tokens> { fn mut_if(is_mut: bool) -> Option<Tokens> {