Before formatting
This commit is contained in:
parent
c76ad9fe59
commit
c2d9a9fb64
@ -88,12 +88,12 @@ fn ser_list_of_items() {
|
||||
|
||||
#[derive(YaSerialize, PartialEq, Debug)]
|
||||
#[yaserde(rename = "base")]
|
||||
pub struct XmlStructOfStructRenamedFlattenedField {
|
||||
pub struct XmlStructOfStructNonFlattenedField {
|
||||
//#[yaserde(flatten)]
|
||||
items: Vec<SubStruct>,
|
||||
}
|
||||
|
||||
let model3 = XmlStructOfStructRenamedFlattenedField {
|
||||
let model3 = XmlStructOfStructNonFlattenedField {
|
||||
items: vec![
|
||||
SubStruct {
|
||||
field: "something1".to_string(),
|
||||
@ -104,10 +104,30 @@ fn ser_list_of_items() {
|
||||
],
|
||||
};
|
||||
|
||||
// SubStruct has 'rename' set, but it's ignored because SubStruct is used as a field of XmlStructOfStructRenamedFlattenedField that overrides the 'rename
|
||||
let content = "<base><items><field>something1</field></items><items><field>something2</field></items></base>";
|
||||
//let content = "<base><field>something1</field><field>something2</field></base>";
|
||||
serialize_and_validate!(model3, content);
|
||||
|
||||
#[derive(YaSerialize, PartialEq, Debug)]
|
||||
#[yaserde(rename = "base")]
|
||||
pub struct XmlStructOfStructFlattenedField {
|
||||
#[yaserde(flatten)]
|
||||
items: Vec<SubStruct>,
|
||||
}
|
||||
|
||||
let model3 = XmlStructOfStructFlattenedField {
|
||||
items: vec![
|
||||
SubStruct {
|
||||
field: "something1".to_string(),
|
||||
},
|
||||
SubStruct {
|
||||
field: "something2".to_string(),
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
// SubStruct has 'rename' set, but it's ignored because SubStruct is used as a field of XmlStructOfStructRenamedFlattenedField that overrides the 'rename
|
||||
let content = "<base><field>something1</field><field>something2</field></base>";
|
||||
serialize_and_validate!(model3, content);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -268,26 +268,35 @@ pub fn serialize(
|
||||
}
|
||||
}),
|
||||
Field::FieldStruct { .. } => {
|
||||
Some(quote! {
|
||||
//&self.#label
|
||||
for item in &self.#label {
|
||||
writer.set_start_event_name(Some(#label_name.to_string()));
|
||||
writer.set_skip_start_end(false);
|
||||
item.serialize(writer)?;
|
||||
if field.is_flatten() {
|
||||
Some(quote! {
|
||||
for item in &self.#label {
|
||||
writer.set_start_event_name(None);
|
||||
writer.set_skip_start_end(true);
|
||||
item.serialize(writer)?;
|
||||
}
|
||||
})
|
||||
} else {
|
||||
Some(quote! {
|
||||
for item in &self.#label {
|
||||
writer.set_start_event_name(Some(#label_name.to_string()));
|
||||
writer.set_skip_start_end(false);
|
||||
item.serialize(writer)?;
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
// let (start_event, skip_start) = if field.is_flatten() {
|
||||
// (quote!(None), true)
|
||||
// } else {
|
||||
// (quote!(Some(#label_name.to_string())), false)
|
||||
// };
|
||||
//
|
||||
// Some(quote! {
|
||||
// writer.set_start_event_name(#start_event);
|
||||
// writer.set_skip_start_end(#skip_start);
|
||||
// self.#label.serialize(writer)?;
|
||||
// })
|
||||
},
|
||||
/*let (start_event, skip_start) = if field.is_flatten() {
|
||||
(quote!(None), true)
|
||||
} else {
|
||||
(quote!(Some(#label_name.to_string())), false)
|
||||
};
|
||||
|
||||
Some(quote! {
|
||||
writer.set_start_event_name(#start_event);
|
||||
writer.set_skip_start_end(#skip_start);
|
||||
self.#label.serialize(writer)?;
|
||||
})*/
|
||||
}
|
||||
Field::FieldVec { .. } => {
|
||||
unimplemented!();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user