use std::path::PathBuf;
use clap::Args;
use crate::{
constants::{
DEFAULT_HTTP_TIMEOUT, DEFAULT_RESOLVER_CONCURRENCY, DEFAULT_RESOLVER_TIMEOUT,
DEFAULT_USER_AGENT,
},
enums::output::OutputFormat,
};
#[derive(Args, Clone, Debug, Default)]
pub struct ModuleRunSubCommandArgs {
pub name: String,
#[arg(short, long)]
pub domain: String,
#[arg(value_enum, short, long, default_value_t = OutputFormat::JSON)]
pub output: OutputFormat,
#[arg(long, default_value_t = false)]
pub print: bool,
#[arg(short, long, default_value = DEFAULT_USER_AGENT)]
pub user_agent: String,
#[arg(short = 't', long, default_value_t = DEFAULT_HTTP_TIMEOUT.as_secs())]
pub http_timeout: u64,
#[arg(short, long, default_value = None)]
pub proxy: Option<String>,
#[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>,
#[arg(long = "disable-ip-resolve", default_value_t = false)]
pub resolver_disabled: bool,
}