I want to deserialize a number (for example, u32) from an XML attribute.
#[macro_use]
extern crate serde_derive;
extern crate serde;
extern crate serde_xml_rs as serde_xml;
#[derive(Deserialize, Debug)]
#[serde(rename = "objects")]
pub struct Objects {
    pub foo: u32
}
fn main() {
    let result_string = r#"<?xml version="1.0" encoding="UTF-8"?>
    <objects foo="42"></objects>"#;
    let deserialized: Objects= serde_xml::deserialize(result_string.as_bytes()).expect("Parse error!");
}
But after execution, I get the following error
thread 'main' panicked at 'Parse error!: invalid type: string "42", expected u32'
I know about #[serde(deserialize_with="...")] annotation, but is there an easier way, (for example use serde_xml_rs crate)?
 
    