Merge pull request #50 from DmitrySamoylov/fix-issue-12

Fix issue 12 for attributes
This commit is contained in:
Marc-Antoine ARNAUD 2020-03-24 16:10:27 +01:00 committed by GitHub
commit ad32dd8762
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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;