struct,enumデフォルト


質問する
pub struct TokenInfo {
    resource_owner_id: i64,
    scopes: Vec<String>,
    expires_in_seconds: i64,
    application: Application,
    created_at: i64,
}
このようなstructがある場合、new()関数を作成すると、default値で埋め込まれたstructを返したいのですが、default値を1つずつ書くのは効率的ではなく、方法があるようです.
解決する
Defaultフィーチャーリンク
Default traitへの書き込み
Default traitを使用する場合は、このタイプにデフォルト値を指定します.
#[derive(Default)]
pub struct TokenInfo {
    resource_owner_id: i64,
    scopes: Vec<String>,
    expires_in_seconds: i64,
    application: Application,
    created_at: i64,
}
アプリケーションもデフォルトタイプではないので、アプリケーションにDefaultを提供する必要があります.
Enumのデフォルトライフサイクル
enumに対して#[派生(Default)]ができなくても、それを直接適用する必要があります.
impl Default for Status {
    fn default() -> Self {
        Status::WaitingForCorrection
    }
}
このように実現すればいい.