Fix compilation errors when element name contains dots
This commit is contained in:
@@ -181,6 +181,8 @@ fn de_rename() {
|
||||
item: String,
|
||||
#[yaserde(rename = "sub")]
|
||||
sub_struct: SubStruct,
|
||||
#[yaserde(rename = "maj.min.bug")]
|
||||
with_dots: String,
|
||||
}
|
||||
|
||||
#[derive(YaDeserialize, PartialEq, Debug)]
|
||||
@@ -198,7 +200,7 @@ fn de_rename() {
|
||||
}
|
||||
}
|
||||
|
||||
let content = "<base Item=\"something\"><sub sub_item=\"sub_something\"></sub></base>";
|
||||
let content = "<base Item=\"something\"><sub sub_item=\"sub_something\"></sub><maj.min.bug>2.0.1</maj.min.bug></base>";
|
||||
convert_and_validate!(
|
||||
content,
|
||||
XmlStruct,
|
||||
@@ -207,6 +209,7 @@ fn de_rename() {
|
||||
sub_struct: SubStruct {
|
||||
subitem: "sub_something".to_string(),
|
||||
},
|
||||
with_dots: "2.0.1".into()
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -378,6 +381,8 @@ fn de_complex_enum() {
|
||||
Magenta(Vec<OtherStruct>),
|
||||
#[yaserde(rename = "NotSoCyan")]
|
||||
Cyan(Vec<OtherStruct>),
|
||||
#[yaserde(rename = "renamed.with.dots")]
|
||||
Dotted(u32),
|
||||
}
|
||||
|
||||
impl Default for Color {
|
||||
@@ -551,6 +556,21 @@ fn de_complex_enum() {
|
||||
])
|
||||
}
|
||||
);
|
||||
|
||||
let content = r#"<?xml version="1.0" encoding="utf-8"?>
|
||||
<base xmlns:ns="http://www.sample.com/ns/domain">
|
||||
<background>
|
||||
<renamed.with.dots>54</renamed.with.dots>
|
||||
</background>
|
||||
</base>
|
||||
"#;
|
||||
convert_and_validate!(
|
||||
content,
|
||||
XmlStruct,
|
||||
XmlStruct {
|
||||
background: Color::Dotted(54)
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -125,6 +125,8 @@ fn ser_rename() {
|
||||
item: String,
|
||||
#[yaserde(rename = "sub")]
|
||||
sub_struct: SubStruct,
|
||||
#[yaserde(rename = "maj.min.bug")]
|
||||
version: String,
|
||||
}
|
||||
|
||||
#[derive(YaSerialize, PartialEq, Debug)]
|
||||
@@ -154,9 +156,10 @@ fn ser_rename() {
|
||||
sub_struct: SubStruct {
|
||||
subitem: "sub_something".to_string(),
|
||||
},
|
||||
version: "2.0.2".into(),
|
||||
};
|
||||
|
||||
let content = "<?xml version=\"1.0\" encoding=\"utf-8\"?><base Item=\"something\"><sub sub_item=\"sub_something\" /></base>";
|
||||
let content = "<?xml version=\"1.0\" encoding=\"utf-8\"?><base Item=\"something\"><sub sub_item=\"sub_something\" /><maj.min.bug>2.0.2</maj.min.bug></base>";
|
||||
convert_and_validate!(model, content);
|
||||
}
|
||||
|
||||
@@ -326,6 +329,8 @@ fn ser_unnamed_enum() {
|
||||
Structs(Vec<OtherStruct>),
|
||||
#[yaserde(rename = "renamed")]
|
||||
ToRename(u32),
|
||||
#[yaserde(rename = "renamed.with.dots")]
|
||||
ToRenameDots(u32),
|
||||
}
|
||||
|
||||
impl Default for Enum {
|
||||
@@ -422,6 +427,14 @@ fn ser_unnamed_enum() {
|
||||
let content =
|
||||
"<?xml version=\"1.0\" encoding=\"utf-8\"?><base><color><renamed>87</renamed></color></base>";
|
||||
convert_and_validate!(model, content);
|
||||
|
||||
let model = XmlStruct {
|
||||
color: Enum::ToRenameDots(84),
|
||||
};
|
||||
|
||||
let content =
|
||||
"<?xml version=\"1.0\" encoding=\"utf-8\"?><base><color><renamed.with.dots>84</renamed.with.dots></color></base>";
|
||||
convert_and_validate!(model, content);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
Reference in New Issue
Block a user