use std::path::PathBuf;
use clap::Args;
use crate::{
constants::{DEFAULT_RESOLVER_CONCURRENCY, DEFAULT_RESOLVER_TIMEOUT},
enums::output::OutputFormat,
};
#[derive(Args, Clone, Debug, Default)]
pub struct BruteCommandArgs {
#[arg(short, long)]
pub domain: String,
#[arg(short, long)]
pub wordlist: PathBuf,
#[arg(long, default_value_t = false)]
pub print: bool,
#[arg(short, long, default_value = None)]
pub stream_to_txt: Option<PathBuf>,
#[arg(value_enum, short, long, default_value_t = OutputFormat::JSON)]
pub output: OutputFormat,
#[arg(long, default_value_t = DEFAULT_RESOLVER_TIMEOUT.as_millis() as u64)]
pub resolver_timeout: u64,
#[arg(long, default_value_t = DEFAULT_RESOLVER_CONCURRENCY)]
pub resolver_concurrency: u64,
#[arg(long, default_value = None)]
pub resolver_list: Option<PathBuf>,
}