Remove #[serde(repr = "map")]

This commit is contained in:
Armin Ronacher
2018-03-18 18:30:46 +01:00
parent d44f12907b
commit 58d52e784b
5 changed files with 7 additions and 68 deletions
+2 -8
View File
@@ -770,10 +770,7 @@ fn deserialize_struct(
untagged: &Untagged,
) -> Fragment {
let is_enum = variant_ident.is_some();
let as_map = deserializer.is_none() && !is_enum && match cattrs.repr() {
attr::ContainerRepr::Struct | attr::ContainerRepr::Auto => false,
attr::ContainerRepr::Map => true,
};
let as_map = deserializer.is_none() && !is_enum && cattrs.has_flatten();
let this = &params.this;
let (de_impl_generics, de_ty_generics, ty_generics, where_clause) =
@@ -896,10 +893,7 @@ fn deserialize_struct_in_place(
deserializer: Option<Tokens>,
) -> Option<Fragment> {
let is_enum = variant_ident.is_some();
let as_map = deserializer.is_none() && !is_enum && match cattrs.repr() {
attr::ContainerRepr::Struct | attr::ContainerRepr::Auto => false,
attr::ContainerRepr::Map => true,
};
let as_map = deserializer.is_none() && !is_enum && cattrs.has_flatten();
// for now we do not support in_place deserialization for structs that
// are represented as map.
+4 -3
View File
@@ -245,9 +245,10 @@ fn serialize_tuple_struct(
fn serialize_struct(params: &Parameters, fields: &[Field], cattrs: &attr::Container) -> Fragment {
assert!(fields.len() as u64 <= u64::from(u32::MAX));
match cattrs.repr() {
attr::ContainerRepr::Struct | attr::ContainerRepr::Auto => serialize_struct_as_struct(params, fields, cattrs),
attr::ContainerRepr::Map => serialize_struct_as_map(params, fields, cattrs),
if cattrs.has_flatten() {
serialize_struct_as_map(params, fields, cattrs)
} else {
serialize_struct_as_struct(params, fields, cattrs)
}
}