mirror of
https://github.com/instant-labs/instant-xml.git
synced 2025-02-13 13:32:02 +00:00
Qualify trait method calls to avoid conflicts
This commit is contained in:
parent
cb48920b5b
commit
06fb508e2b
@ -475,10 +475,10 @@ fn deserialize_inline_struct(
|
|||||||
deserialize.extend(quote!(if <#field_ty as FromXml<'xml>>::matches(current, None) {
|
deserialize.extend(quote!(if <#field_ty as FromXml<'xml>>::matches(current, None) {
|
||||||
match <#field_ty as FromXml>::KIND {
|
match <#field_ty as FromXml>::KIND {
|
||||||
Kind::Element => {
|
Kind::Element => {
|
||||||
<#field_ty>::deserialize(&mut into.#field_name, #field_str, deserializer)?;
|
<#field_ty as FromXml>::deserialize(&mut into.#field_name, #field_str, deserializer)?;
|
||||||
}
|
}
|
||||||
Kind::Scalar => {
|
Kind::Scalar => {
|
||||||
<#field_ty>::deserialize(&mut into.#field_name, #field_str, deserializer)?;
|
<#field_ty as FromXml>::deserialize(&mut into.#field_name, #field_str, deserializer)?;
|
||||||
deserializer.ignore()?;
|
deserializer.ignore()?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -647,7 +647,7 @@ fn named_field<'a>(
|
|||||||
Node::Text(text) => {
|
Node::Text(text) => {
|
||||||
seen_direct = true;
|
seen_direct = true;
|
||||||
let mut nested = deserializer.for_node(Node::Text(text));
|
let mut nested = deserializer.for_node(Node::Text(text));
|
||||||
<#no_lifetime_type>::deserialize(&mut #val_name, #field_str, &mut nested)?;
|
<#no_lifetime_type as FromXml>::deserialize(&mut #val_name, #field_str, &mut nested)?;
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
// We can only enter this FromXml impl if the caller found the opening
|
// We can only enter this FromXml impl if the caller found the opening
|
||||||
@ -657,7 +657,7 @@ fn named_field<'a>(
|
|||||||
after_loop.extend(quote!(
|
after_loop.extend(quote!(
|
||||||
if !seen_direct {
|
if !seen_direct {
|
||||||
let mut nested = deserializer.for_node(Node::Text("".into()));
|
let mut nested = deserializer.for_node(Node::Text("".into()));
|
||||||
<#no_lifetime_type>::deserialize(&mut #val_name, #field_str, &mut nested)?;
|
<#no_lifetime_type as FromXml>::deserialize(&mut #val_name, #field_str, &mut nested)?;
|
||||||
}
|
}
|
||||||
));
|
));
|
||||||
} else {
|
} else {
|
||||||
@ -665,11 +665,11 @@ fn named_field<'a>(
|
|||||||
__Elements::#enum_name => match <#no_lifetime_type as FromXml>::KIND {
|
__Elements::#enum_name => match <#no_lifetime_type as FromXml>::KIND {
|
||||||
Kind::Element => {
|
Kind::Element => {
|
||||||
let mut nested = deserializer.nested(data);
|
let mut nested = deserializer.nested(data);
|
||||||
<#no_lifetime_type>::deserialize(&mut #val_name, #field_str, &mut nested)?;
|
<#no_lifetime_type as FromXml>::deserialize(&mut #val_name, #field_str, &mut nested)?;
|
||||||
}
|
}
|
||||||
Kind::Scalar => {
|
Kind::Scalar => {
|
||||||
let mut nested = deserializer.nested(data);
|
let mut nested = deserializer.nested(data);
|
||||||
<#no_lifetime_type>::deserialize(&mut #val_name, #field_str, &mut nested)?;
|
<#no_lifetime_type as FromXml>::deserialize(&mut #val_name, #field_str, &mut nested)?;
|
||||||
nested.ignore()?;
|
nested.ignore()?;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -419,11 +419,17 @@ fn named_field(
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
} else if field_meta.direct {
|
} else if field_meta.direct {
|
||||||
body.extend(quote!(
|
body.extend(quote!(
|
||||||
self.#field_name.serialize(None, serializer)?;
|
<#no_lifetime_type as ToXml>::serialize(
|
||||||
|
&self.#field_name, None, serializer
|
||||||
|
)?;
|
||||||
));
|
));
|
||||||
} else {
|
} else {
|
||||||
body.extend(quote!(
|
body.extend(quote!(
|
||||||
self.#field_name.serialize(Some(::instant_xml::Id { ns: #ns, name: #tag }), serializer)?;
|
<#no_lifetime_type as ToXml>::serialize(
|
||||||
|
&self.#field_name,
|
||||||
|
Some(::instant_xml::Id { ns: #ns, name: #tag }),
|
||||||
|
serializer,
|
||||||
|
)?;
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user