让我们考虑以下示例代码(我的实际代码有十分之几的字段):
fn empty_field() -> Result<f64, String> {
Err(String::new())
}
#[derive(Deserialize, Serialize)]
struct Record {
#[serde(rename = "Apple", default)]
a: f64,
#[serde(rename = "Banana", default)]
b: String,
#[serde(rename = "Coconut", default = "empty_field")]
c: Result<f64, String>,
}
是否可以获得基于Serde注释的默认实例,而无需手动定义,如下所示?
let empty_record = Record {
a: 0.0,
b: String::new(),
c: Err(String::new()),
};