serde-xml-rs 反序列化 u8 有效但 u16 无效
serde-xml-rs deseralizing u8 works but not u16
我正在尝试将 xml 文档反序列化为自定义 rust class。所附代码是我的问题的最简单形式。当尝试反序列化除 u8 以外的任何类型的数值时,给出的错误是 'main' paniced at 'called Result::unwrap()
on an Err
value: invalid type: string "99", expected u16' 或任何所需的类型。 serde_xml_rs 似乎将字符串值转换为 u8 的正确数值,但不是其他类型。我做错了什么吗?
#[macro_use]
extern crate serde_derive;
extern crate serde;
extern crate serde_xml_rs;
fn main() {
weird_example();
}
#[derive(Deserialize, Debug)]
struct SampleStruct {
name: String,
num_u8: u8,
num_u16: u16,
}
fn weird_example (){
let deser: SampleStruct = serde_xml_rs::deserialize(r##"
<?xml version="1.0" encoding="utf-8"?>
<sample_struct name="Sample" num_u8="99" num_u16="99">
</sample_struct>
"##.as_bytes()).unwrap();
println!("{:#?}", deser);
}
我正在尝试将 xml 文档反序列化为自定义 rust class。所附代码是我的问题的最简单形式。当尝试反序列化除 u8 以外的任何类型的数值时,给出的错误是 'main' paniced at 'called Result::unwrap()
on an Err
value: invalid type: string "99", expected u16' 或任何所需的类型。 serde_xml_rs 似乎将字符串值转换为 u8 的正确数值,但不是其他类型。我做错了什么吗?
#[macro_use]
extern crate serde_derive;
extern crate serde;
extern crate serde_xml_rs;
fn main() {
weird_example();
}
#[derive(Deserialize, Debug)]
struct SampleStruct {
name: String,
num_u8: u8,
num_u16: u16,
}
fn weird_example (){
let deser: SampleStruct = serde_xml_rs::deserialize(r##"
<?xml version="1.0" encoding="utf-8"?>
<sample_struct name="Sample" num_u8="99" num_u16="99">
</sample_struct>
"##.as_bytes()).unwrap();
println!("{:#?}", deser);
}