41 lines
929 B
Rust
41 lines
929 B
Rust
#![allow(clippy::default_trait_access)]
|
|
use std::path::PathBuf;
|
|
|
|
#[derive(Debug, Clone, Eq, PartialEq)]
|
|
pub enum CreateHome {
|
|
Create,
|
|
Skip,
|
|
HomeFromDir { path: PathBuf },
|
|
}
|
|
#[derive(Debug, Clone, Eq, PartialEq)]
|
|
pub enum CreatePrimaryGroup {
|
|
Create,
|
|
Skip,
|
|
CreateIfEmptyOrAdd,
|
|
}
|
|
#[derive(Debug, Builder, Eq, PartialEq)]
|
|
#[builder(public)]
|
|
#[builder(default)]
|
|
pub struct CreateUserArgs<'a> {
|
|
pub username: &'a str,
|
|
pub delete_home: CreateHome,
|
|
pub delete_primary_group: CreatePrimaryGroup,
|
|
}
|
|
|
|
impl<'a> CreateUserArgs<'a> {
|
|
#[must_use]
|
|
pub fn builder() -> CreateUserArgsBuilder<'a> {
|
|
CreateUserArgsBuilder::default()
|
|
}
|
|
}
|
|
|
|
impl Default for CreateUserArgs<'_> {
|
|
fn default() -> Self {
|
|
Self {
|
|
username: "defaultuser",
|
|
delete_home: CreateHome::Create,
|
|
delete_primary_group: CreatePrimaryGroup::CreateIfEmptyOrAdd,
|
|
}
|
|
}
|
|
}
|