use clap::Args;
use std::path::PathBuf;
#[derive(Args, Debug, Clone, Default)]
pub struct CoverageArgs {
#[arg(long)]
pub manifest_path: Option<PathBuf>,
#[arg(short, long)]
pub package: Option<String>,
#[arg(short, long)]
pub release: bool,
#[arg(long)]
pub summary_only: bool,
#[arg(long)]
pub html: bool,
#[arg(long)]
pub lcov: bool,
#[arg(long)]
pub json: bool,
#[arg(long)]
pub text: bool,
#[arg(long)]
pub output_dir: Option<PathBuf>,
#[arg(long)]
pub open: bool,
#[arg(long)]
pub fail_under_lines: Option<f64>,
#[arg(value_name = "TESTNAME")]
pub filter: Option<String>,
#[arg(long, visible_alias = "all")]
pub workspace: bool,
#[arg(long, value_name = "SPEC", action = clap::ArgAction::Append)]
pub exclude: Vec<String>,
#[arg(long)]
pub all_targets: bool,
#[arg(long)]
pub target_dir: Option<PathBuf>,
#[arg(short = 'F', long)]
pub features: Vec<String>,
#[arg(long)]
pub no_default_features: bool,
#[arg(long)]
pub all_features: bool,
#[arg(long)]
pub no_cache: bool,
#[arg(long)]
pub cache_dir: Option<PathBuf>,
#[arg(long)]
pub no_run: bool,
#[arg(long)]
pub no_fail_fast: bool,
#[arg(long = "test", action = clap::ArgAction::Append)]
pub test: Vec<String>,
#[arg(long)]
pub tests: bool,
#[arg(long = "bin", action = clap::ArgAction::Append)]
pub bin: Vec<String>,
#[arg(long)]
pub bins: bool,
#[arg(long)]
pub lib: bool,
#[arg(long)]
pub doc: bool,
#[arg(long)]
pub nocapture: bool,
#[arg(long)]
pub exact: bool,
#[arg(long)]
pub ignored: bool,
#[arg(short, long, action = clap::ArgAction::Count)]
pub verbose: u8,
#[arg(long, action = clap::ArgAction::Append)]
pub config: Vec<String>,
#[arg(last = true)]
pub test_args: Vec<String>,
}