Store flatten flag in container attributes

This commit is contained in:
Jan Michael Auer
2018-03-15 14:30:38 +01:00
committed by Armin Ronacher
parent 571bb8caed
commit 5ae06bba49
3 changed files with 17 additions and 7 deletions
+2 -6
View File
@@ -286,7 +286,7 @@ fn serialize_struct_as_struct(params: &Parameters, fields: &[Field], cattrs: &at
}
}
fn serialize_struct_as_map(params: &Parameters, fields: &[Field], _cattrs: &attr::Container) -> Fragment {
fn serialize_struct_as_map(params: &Parameters, fields: &[Field], cattrs: &attr::Container) -> Fragment {
let serialize_fields = serialize_struct_visitor(
fields,
params,
@@ -301,11 +301,7 @@ fn serialize_struct_as_map(params: &Parameters, fields: &[Field], _cattrs: &attr
let let_mut = mut_if(serialized_fields.peek().is_some());
let has_flatten = fields
.iter()
.any(|field| field.attrs.flatten());
let len = if has_flatten {
let len = if cattrs.has_flatten() {
quote!(None)
} else {
let len = serialized_fields