如何避免Serde需要跳过序列化的字段的默认特征?

And*_*zie 7 rust serde

我有这个通过反序列化Serde创建的结构,我希望在其中有一个类型的字段,Url不反序列化:

#[derive(Deserialize, Debug)]
pub struct Flow {
    #[serde(skip_deserializing)]
    pub source: Url,
}
Run Code Online (Sandbox Code Playgroud)

操场

Serde抱怨Url不满足这个Default特质.我尝试过,有没有派生Default.我是我唯一能DefaultUrl自己实施这一特质的选择吗?

oli*_*obk 11

您可以#[serde(default = "path")]在该字段上使用带有签名的函数,fn() -> Url如果缺少该字段,则应该调用该签名.