1 use clap::Command; 2 main()3fn main() { 4 let cmd = Command::new(env!("CARGO_CRATE_NAME")) 5 .multicall(true) 6 .arg_required_else_help(true) 7 .subcommand_value_name("APPLET") 8 .subcommand_help_heading("APPLETS") 9 .subcommand(Command::new("hostname").about("show hostname part of FQDN")) 10 .subcommand(Command::new("dnsdomainname").about("show domain name part of FQDN")); 11 12 match cmd.get_matches().subcommand_name() { 13 Some("hostname") => println!("www"), 14 Some("dnsdomainname") => println!("example.com"), 15 _ => unreachable!("parser should ensure only valid subcommand names are used"), 16 } 17 } 18