cargo-setupx 0.1.0

Rust-based CLI and library that automates the initial setup of new Rust projects with modular configuration packs
Documentation
//! CLI argument structures

use clap::Parser;
use std::path::PathBuf;

/// cargo-setupx - Automate Rust project setup with modular configuration packs
#[derive(Parser, Debug)]
#[command(name = "cargo-setupx")]
#[command(author, version, about, long_about = None)]
#[command(bin_name = "cargo")]
pub struct Cli {
    #[command(subcommand)]
    pub command: Commands,
}

#[derive(Parser, Debug)]
pub enum Commands {
    /// Setup a new Rust project with configuration packs
    Setupx(SetupxArgs),
}

#[derive(Parser, Debug)]
pub struct SetupxArgs {
    /// Enable quality pack (rustfmt.toml, clippy.toml, _typos.toml, Makefile)
    #[arg(long)]
    pub quality: bool,

    /// Enable hooks pack (.githooks/pre-push, setup.sh)
    #[arg(long)]
    pub hooks: bool,

    /// Enable architecture pack (currently only 'clean' is supported)
    #[arg(long, value_name = "TYPE")]
    pub arch: Option<String>,

    /// Force overwrite existing files
    #[arg(long, short = 'f')]
    pub force: bool,

    /// Skip confirmation prompts
    #[arg(long, short = 'y')]
    pub yes: bool,

    /// Project path (defaults to current directory)
    #[arg(value_name = "PATH", default_value = ".")]
    pub path: PathBuf,

    /// Apply all packs (quality + hooks + clean architecture)
    #[arg(long)]
    pub all: bool,
}