diff --git a/serde_derive/src/internals/attr.rs b/serde_derive/src/internals/attr.rs index 79b8794b..f6ff5aed 100644 --- a/serde_derive/src/internals/attr.rs +++ b/serde_derive/src/internals/attr.rs @@ -410,11 +410,11 @@ impl Container { syn::Data::Enum(_) => { internal_tag.set(&m.ident, s.value()); } - syn::Data::Struct(syn::DataStruct{ref fields, ..}) => { + syn::Data::Struct(syn::DataStruct { ref fields, .. }) => { match *fields { syn::Fields::Named(_) => { internal_tag.set(&m.ident, s.value()); - }, + } syn::Fields::Unnamed(_) | syn::Fields::Unit => { cx.error_spanned_by( fields, @@ -430,7 +430,7 @@ impl Container { cx.error_spanned_by( union_token, "#[serde(tag = \"...\")] can only be used on enums \ - and structs with named fields", + and structs with named fields", ); } } diff --git a/serde_derive/src/internals/check.rs b/serde_derive/src/internals/check.rs index 6409dfc2..d349bd49 100644 --- a/serde_derive/src/internals/check.rs +++ b/serde_derive/src/internals/check.rs @@ -1,5 +1,5 @@ use internals::ast::{Container, Data, Field, Style}; -use internals::attr::{TagType, Identifier}; +use internals::attr::{Identifier, TagType}; use internals::{Ctxt, Derive}; use syn::{Member, Type}; diff --git a/serde_derive/src/ser.rs b/serde_derive/src/ser.rs index a212e7d8..7ea0ea30 100644 --- a/serde_derive/src/ser.rs +++ b/serde_derive/src/ser.rs @@ -300,15 +300,18 @@ fn serialize_struct_as_struct( let type_name = cattrs.name().serialize_name(); let additional_field_count: usize = match cattrs.tag() { - &attr::TagType::Internal{ref tag} => { + &attr::TagType::Internal { ref tag } => { let func = StructTrait::SerializeStruct.serialize_field(Span::call_site()); - serialize_fields.insert(0, quote! { - try!(#func(&mut __serde_state, #tag, #type_name)); - }); + serialize_fields.insert( + 0, + quote! { + try!(#func(&mut __serde_state, #tag, #type_name)); + }, + ); 1 } - _ => 0 + _ => 0, }; let mut serialized_fields = fields @@ -326,7 +329,10 @@ fn serialize_struct_as_struct( quote!(if #path(#field_expr) { 0 } else { 1 }) } }) - .fold(quote!(#additional_field_count), |sum, expr| quote!(#sum + #expr)); + .fold( + quote!(#additional_field_count), + |sum, expr| quote!(#sum + #expr), + ); quote_block! { let #let_mut __serde_state = try!(_serde::Serializer::serialize_struct(__serializer, #type_name, #len)); diff --git a/test_suite/tests/test_macros.rs b/test_suite/tests/test_macros.rs index 1eea8f10..c3f260bf 100644 --- a/test_suite/tests/test_macros.rs +++ b/test_suite/tests/test_macros.rs @@ -1379,13 +1379,13 @@ fn test_enum_in_internally_tagged_enum() { #[test] fn test_internally_tagged_struct() { #[derive(Debug, PartialEq, Serialize, Deserialize)] - #[serde(tag="type")] + #[serde(tag = "type")] pub struct Struct { a: u8, } assert_tokens( - &Struct{ a: 1 }, + &Struct { a: 1 }, &[ Token::Struct { name: "Struct", diff --git a/test_suite/tests/ui/struct-representation/internally-tagged-tuple.rs b/test_suite/tests/ui/struct-representation/internally-tagged-tuple.rs index 78437f17..3a62df35 100644 --- a/test_suite/tests/ui/struct-representation/internally-tagged-tuple.rs +++ b/test_suite/tests/ui/struct-representation/internally-tagged-tuple.rs @@ -3,9 +3,6 @@ extern crate serde_derive; #[derive(Serialize)] #[serde(tag = "type")] -struct S ( - u8, - u8 -); +struct S(u8, u8); fn main() {} diff --git a/test_suite/tests/ui/struct-representation/internally-tagged-tuple.stderr b/test_suite/tests/ui/struct-representation/internally-tagged-tuple.stderr index b87beef8..ab505a09 100644 --- a/test_suite/tests/ui/struct-representation/internally-tagged-tuple.stderr +++ b/test_suite/tests/ui/struct-representation/internally-tagged-tuple.stderr @@ -1,12 +1,8 @@ error: #[serde(tag = "...")] can only be used on enums and structs with named fields - --> $DIR/internally-tagged-tuple.rs:6:10 + --> $DIR/internally-tagged-tuple.rs:6:9 | -6 | struct S ( - | __________^ -7 | | u8, -8 | | u8 -9 | | ); - | |_^ +6 | struct S(u8, u8); + | ^^^^^^^^ error: aborting due to previous error