#[derive(Debug)] enum Command { Status, Stop, Start, Enable, Disable, } struct CliArgs { command: Command, target: String } fn main() { let command:Command = match std::env::args().nth(1).as_deref(){ Some("status") => Command::Status, Some("start") => Command::Start, Some("stop") => Command::Stop, Some("enable") => Command::Enable, Some("disable") => Command::Disable, Some(cmd) => { eprintln!("invalid command arg:{}", cmd); std::process::exit(1); } None => { eprintln!("Invalid input: No command arg specified\nRun with --help to get help"); std::process::exit(1); } }; let target = std::env::args().nth(2).expect("no target arg specified"); let args = CliArgs { command, target }; println!("command: {:?}, target: {:?}", args.command, args.target); }