P.TYP.SCT.02 结构体实例需要默认实现时,宜使用Default特质

【描述】

为结构体实现 Default 对于简化代码提高可读性很有帮助。

【示例】

use std::{path::PathBuf, time::Duration};

#[derive(Default, Debug, PartialEq)]
struct MyConfiguration {
    output: Option<PathBuf>,
    search_path: Vec<PathBuf>,
    timeout: Duration,
    check: bool,
}

fn main() {
    // 使用 default 方法创建实例
    let mut conf = MyConfiguration::default();
    conf.check = true;
    println!("conf = {:#?}", conf);
        
    // 创建新实例的时候,使用局部更新更加方便
    let conf1 = MyConfiguration {
        check: true,
        ..Default::default()
    };
    assert_eq!(conf, conf1);
}