1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#![allow(clippy::default_trait_access)]
use std::path::PathBuf;

#[derive(Debug, Clone, Eq, PartialEq)]
pub enum DeleteHome {
    Delete,
    Keep,
    Archive { path: PathBuf },
}
#[derive(Debug, Clone, Eq, PartialEq)]
pub enum DeletePrimaryGroup {
    Delete,
    Keep,
    DeleteIfEmpty,
}
#[derive(Debug, Builder, Eq, PartialEq)]
#[builder(public)]
#[builder(default)]
pub struct DeleteUserArgs<'a> {
    pub username: &'a str,
    pub delete_home: DeleteHome,
    pub delete_primary_group: DeletePrimaryGroup,
}

impl<'a> DeleteUserArgs<'a> {
    #[must_use]
    pub fn builder() -> DeleteUserArgsBuilder<'a> {
        DeleteUserArgsBuilder::default()
    }
}

impl Default for DeleteUserArgs<'_> {
    fn default() -> Self {
        Self {
            username: "defaultuser",
            delete_home: DeleteHome::Keep,
            delete_primary_group: DeletePrimaryGroup::DeleteIfEmpty,
        }
    }
}