use clap::{Args, Parser};
use clap_verbosity_flag::Verbosity;
use std::{net::SocketAddr, path::PathBuf};
#[derive(Parser, Debug)]
#[command(version, about)]
pub struct UserArgs {
#[clap(short = 'a', long = "bind-addr", default_value = "127.0.0.1:7001")]
pub bind_addr: SocketAddr,
#[clap(flatten)]
pub cert: CertGroup,
#[clap(long = "stateless-retry")]
pub stateless_retry: bool,
#[clap(long = "keylog")]
pub keylog: bool,
#[clap(long = "max-idle-timeout", default_value_t = 15000, value_parser = clap::value_parser!(u32))]
pub max_idle_timeout: u32,
#[clap(flatten)]
pub verbose: Verbosity,
}
#[derive(Args, Debug)]
pub struct CertGroup {
#[clap(long, default_value = "certs/server/ca.der")]
pub ca: PathBuf,
#[clap(
short = 'k',
long = "key",
default_value = "certs/server/localhost.key.der"
)]
pub key: PathBuf,
#[clap(
short = 'c',
long = "cert",
default_value = "certs/server/localhost.der"
)]
pub cert: PathBuf,
}