Fix issue 12 for attributes

This commit is contained in:
Dmitry Samoylov 2020-03-24 17:39:16 +07:00
parent 077b2f51e3
commit b3d9ea0744
2 changed files with 34 additions and 1 deletions

View File

@ -854,3 +854,36 @@ fn de_subitem_issue_12_attributes() {
Struct { id: 54 }
);
}
#[test]
fn de_subitem_issue_12_attributes_with_sub() {
#[derive(Default, PartialEq, Debug, YaDeserialize)]
pub struct SubStruct {
#[yaserde(attribute)]
id: i32,
}
#[derive(Default, PartialEq, Debug, YaDeserialize)]
pub struct Struct {
#[yaserde(attribute)]
id: i32,
sub1: SubStruct,
sub2: SubStruct,
}
convert_and_validate!(
r#"
<?xml version="1.0" encoding="utf-8"?>
<Struct id="54">
<sub1 id="63" />
<sub2 id="72" />
</Struct>
"#,
Struct,
Struct {
id: 54,
sub1: SubStruct { id: 63 },
sub2: SubStruct { id: 72 }
}
);
}

View File

@ -423,7 +423,7 @@ pub fn parse(
// return Err(format!("unknown key {}", name))
// }
}
if !skipped {
if depth == 0 && !skipped { // Look for attributes only at element start
#attributes_loading
}
depth += 1;