#[derive(Parser, Debug)] #[clap(author, version, about, long_about = None)] #[clap(propagate_version = true)] struct Cli { /// Configuration file. #[clap(long)] config: Option<String>, /// Bind address, e.g. 0.0.0.0:8443. #[clap(long)] bind: String, #[clap(subcommand)] command: Commands, } #[derive(Subcommand, Debug)] enum Commands { Http(HttpOptions), Https(HttpsOptions), Tcp(TcpOptions), } ...