use clap::Parser;
#[derive(Parser, Debug)]
#[command(name = "x402curl")]
#[command(about = "curl with automatic x402 payment handling")]
#[command(version)]
pub struct Args {
#[arg(required = true)]
pub url: String,
#[arg(short = 'X', long = "request", default_value = "GET")]
pub method: String,
#[arg(short = 'H', long = "header", action = clap::ArgAction::Append)]
pub headers: Vec<String>,
#[arg(short = 'd', long = "data")]
pub data: Option<String>,
#[arg(long = "data-binary")]
pub data_binary: Option<String>,
#[arg(short = 'o', long = "output")]
pub output: Option<String>,
#[arg(short = 'f', long = "fail")]
pub fail: bool,
#[arg(short = 's', long = "silent")]
pub silent: bool,
#[arg(short = 'v', long = "verbose")]
pub verbose: bool,
#[arg(short = 'F', long = "form", action = clap::ArgAction::Append)]
pub form: Vec<String>,
#[arg(short = 'u', long = "user")]
pub user: Option<String>,
#[arg(short = 'L', long = "location")]
pub location: bool,
#[arg(long = "x402-key")]
pub x402_key: Option<String>,
#[arg(long = "x402-dry-run")]
pub x402_dry_run: bool,
#[arg(long = "confirm")]
pub confirm: bool,
}
impl Args {
pub fn parse_args() -> Self {
Args::parse()
}
}