mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-04-22 16:08:05 +00:00
Take into account only not skipped flatten fields when choose serialization form
Consequence: `FlattenSkipSerializing` - uses `serialize_struct` instead of `serialize_map`
This commit is contained in:
@@ -297,7 +297,10 @@ fn serialize_struct(params: &Parameters, fields: &[Field], cattrs: &attr::Contai
|
||||
u32::MAX
|
||||
);
|
||||
|
||||
if cattrs.has_flatten() {
|
||||
let has_non_skipped_flatten = fields
|
||||
.iter()
|
||||
.any(|field| field.attrs.flatten() && !field.attrs.skip_serializing());
|
||||
if has_non_skipped_flatten {
|
||||
serialize_struct_as_map(params, fields, cattrs)
|
||||
} else {
|
||||
serialize_struct_as_struct(params, fields, cattrs)
|
||||
|
||||
Reference in New Issue
Block a user