use serde::Deserialize;
#[derive(Deserialize, Debug)]
struct Request {
#[serde(default)]
timeout: Timeout,
}
/// Timeout in seconds.
#[derive(Deserialize, Debug)]
struct Timeout(u32);
impl Default for Timeout {
fn default() -> Self {
Timeout(30)
}
}
fn main() {
let json = r#"{}"#;
let request: Request = serde_json::from_str(json).unwrap();
println!("{:?}", request.timeout);
}
字符串
Playground
这个例子打印了Timeout(30)
,因为没有给出timeout
字段,有没有办法知道它没有在request
变量中给出?
1条答案
按热度按时间mzillmmw1#
如果你真的想要它:
字符串
Playground的一个。
但是,最好只对
Option
进行反序列化。