From fff6275f5a6e12357e622ce718b99e630872a2a4 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Arnaud Date: Tue, 20 Nov 2018 14:24:04 +0100 Subject: [PATCH] add attributes on option struct --- yaserde_derive/src/ser/expand_struct.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/yaserde_derive/src/ser/expand_struct.rs b/yaserde_derive/src/ser/expand_struct.rs index 8802d5d..4ade567 100644 --- a/yaserde_derive/src/ser/expand_struct.rs +++ b/yaserde_derive/src/ser/expand_struct.rs @@ -262,8 +262,14 @@ pub fn serialize( }), Some(&FieldType::FieldTypeStruct { .. }) => Some(quote!{ if let Some(ref item) = &self.#label { - let start_event = XmlEvent::start_element(#label_name); - let _ret = writer.write(start_event); + writer.set_start_event_name(Some(#label_name.to_string())); + match item.serialize(writer) { + Ok(()) => {}, + Err(msg) => { + return Err(msg); + }, + }; + writer.set_start_event_name(None); writer.set_skip_start_end(true); match item.serialize(writer) {