Skip to content

Commit 3b45f08

Browse files
feat: add example related to issue #200
1 parent 2adc731 commit 3b45f08

2 files changed

Lines changed: 49 additions & 0 deletions

File tree

examples/src/default_namespace.rs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
use yaserde::YaDeserialize;
2+
3+
#[derive(YaDeserialize, Debug, PartialEq)]
4+
#[yaserde(rename = "EBMLSchema", prefix = "a", namespaces = {"a" = "some_namespace"})]
5+
struct Schema {
6+
#[yaserde(rename = "element", prefix = "a")]
7+
elements: Vec<Element>,
8+
}
9+
10+
#[derive(YaDeserialize, Debug, PartialEq)]
11+
#[yaserde(rename = "element", prefix = "a", namespaces = {"a" = "some_namespace"})]
12+
struct Element {
13+
#[yaserde(rename = "documentation", prefix = "a")]
14+
documentation: Vec<Documentation>,
15+
}
16+
17+
#[derive(YaDeserialize, Debug, PartialEq)]
18+
#[yaserde(rename = "documentation", prefix = "a", namespaces = {"a" = "some_namespace"})]
19+
struct Documentation {
20+
#[yaserde(text = true)]
21+
body: String,
22+
}
23+
24+
#[test]
25+
fn nested_element_equality() {
26+
let parent = r#"
27+
<EBMLSchema xmlns="some_namespace">
28+
<element>
29+
<documentation>Test</documentation>
30+
</element>
31+
</EBMLSchema>
32+
"#;
33+
34+
let parent: Schema = yaserde::de::from_str(parent).unwrap();
35+
36+
let child = r#"
37+
<element xmlns="some_namespace">
38+
<documentation>Test</documentation>
39+
</element>
40+
"#;
41+
42+
let child: Element = yaserde::de::from_str(child).unwrap();
43+
44+
println!("{:#?}", child);
45+
println!("{:#?}", parent);
46+
47+
assert_eq!(parent.elements[0], child);
48+
}

examples/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
mod bbigras_namespace;
22
mod boscop;
3+
mod default_namespace;
34
mod generic;
45
mod ln_dom;
56
mod same_element_different_namespaces;

0 commit comments

Comments
 (0)