我有一个包含20个字段的 struct :
struct StructA {
value1: i32,
value2: i32,
// ...
value19: i32,
day: chrono::NaiveDate,
}
我想用Default
分换StructA
分.我试图向 struct 中添加#[derive(Default)]
,但chrono::NaiveDate
没有实现Default
.
然后我try 用Default
换StructA
:
impl Default for StructA {
fn default() -> Self {
Self {
value1: Default::default(),
value2: Default::default(),
// ...
value19: Default::default(),
day: chrono::NaiveDate::from_ymd(2021, 1, 1),
}
}
}
这段代码运行良好,但value1
到value19
的部分是多余的.有没有代码更少的解决方案?
- 我定义了
StructA
来通过serde JSON反序列化JSON数据,因此无法更改 struct 的定义. - JSON数据总是给出
day: chrono::NaiveDate
的值,所以我想避免使用day: Option<chrono::NaiveDate>
.