use std::net::SocketAddr;
#[derive(clap::Parser)]
pub struct Args {
#[arg(short, long, env = "TOW_DEBUG")]
pub debug: bool,
#[clap(subcommand)]
pub subcommand: Subcommand,
}
#[derive(clap::Subcommand)]
pub enum Subcommand {
Server(ServerArgs),
Client(ClientArgs),
}
#[derive(clap::Parser)]
pub struct ServerArgs {
#[arg(env = "TOW_SERVER_FROM")]
pub from: SocketAddr,
#[arg(env = "TOW_SERVER_TO")]
pub to: String,
}
#[derive(clap::Parser)]
pub struct ClientArgs {
#[arg(env = "TOW_CLIENT_FROM")]
pub from: SocketAddr,
#[arg(env = "TOW_CLIENT_TO")]
pub to: String,
#[arg(short, long, value_name = "MILLISECONDS", env = "TOW_CLIENT_TIMEOUT")]
pub timeout: Option<u64>,
}