use std::path::PathBuf;
use clap::{Args, ValueEnum};
use serde::{Deserialize, Serialize};
use super::AnalysisPreset;
#[derive(Args, Debug, Clone)]
pub struct BadgeArgs {
#[arg(value_name = "INPUT", default_value = ".")]
pub inputs: Vec<PathBuf>,
#[arg(long, value_enum)]
pub metric: BadgeMetric,
#[arg(long, value_enum)]
pub preset: Option<AnalysisPreset>,
#[arg(long, action = clap::ArgAction::SetTrue, conflicts_with = "no_git")]
pub git: bool,
#[arg(long = "no-git", action = clap::ArgAction::SetTrue, conflicts_with = "git")]
pub no_git: bool,
#[arg(long)]
pub max_commits: Option<usize>,
#[arg(long)]
pub max_commit_files: Option<usize>,
#[arg(long, visible_alias = "out")]
pub output: Option<PathBuf>,
}
#[derive(ValueEnum, Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "kebab-case")]
pub enum BadgeMetric {
Lines,
Tokens,
Bytes,
Doc,
Blank,
Hotspot,
}