umanux/api/
deleteuser_args.rs

1#![allow(clippy::default_trait_access)]
2use std::path::PathBuf;
3
4#[derive(Debug, Clone, Eq, PartialEq)]
5pub enum DeleteHome {
6    Delete,
7    Keep,
8    Archive { path: PathBuf },
9}
10#[derive(Debug, Clone, Eq, PartialEq)]
11pub enum DeletePrimaryGroup {
12    Delete,
13    Keep,
14    DeleteIfEmpty,
15}
16#[derive(Debug, Builder, Eq, PartialEq)]
17#[builder(public)]
18#[builder(default)]
19pub struct DeleteUserArgs<'a> {
20    pub username: &'a str,
21    pub delete_home: DeleteHome,
22    pub delete_primary_group: DeletePrimaryGroup,
23}
24
25impl<'a> DeleteUserArgs<'a> {
26    #[must_use]
27    pub fn builder() -> DeleteUserArgsBuilder<'a> {
28        DeleteUserArgsBuilder::default()
29    }
30}
31
32impl Default for DeleteUserArgs<'_> {
33    fn default() -> Self {
34        Self {
35            username: "defaultuser",
36            delete_home: DeleteHome::Keep,
37            delete_primary_group: DeletePrimaryGroup::DeleteIfEmpty,
38        }
39    }
40}