Reputation: 59
I need to serialize an xml string as an enum value like the example below.
#[derive(Serialize, Deserialize, Tsify, TsifyAsync, Clone, PartialEq, Eq, Debug)]
#[tsify(into_wasm_abi, from_wasm_abi)]
pub enum Dummy{
A,
B,
C
}
#[derive(Serialize, Debug, Deserialize)]
pub struct Test{
pub enu: Dummy
}
mod tests{
fn parse_enum(){
let xml = r#"
<Test>
<enu>B</enu>
</Test>
"#;
let parsed: Test = serde_xml_rs::from_str(xml).unwrap();
assert_eq!(parsed.enu, Dummy::B);
let parsed: Test = quick_xml::de::from_str(xml).unwrap();
assert_eq!(parsed.enu, Dummy::B);
}
}
Note that serde_xml_rs deserializes this as I intend. (I can't switch to that crate for reasons I don't want to go into). Is there any way to make this work with quick xml?
Upvotes: 0
Views: 41