#[cfg(not(any(feature = "native", feature = "wasm")))] compile_error!("You need to enable one of native, wasm features"); #[cfg(all(feature = "native", feature = "wasm"))] compile_error!("You cannot enable both native and wasm features"); pub enum StkArgs { Play, } #[cfg(not(target_arch = "wasm32"))] pub fn parse_args() -> StkArgs { let mut pargs = pico_args::Arguments::from_env(); if pargs.contains(["-h", "--help"]) { print_help(); std::process::exit(0); } if pargs.contains(["-v", "--version"]) { println!("{}", env!("CARGO_PKG_VERSION")); std::process::exit(0); } let subcommand = pargs.subcommand().unwrap(); match subcommand.as_deref() { None | Some("play") => StkArgs::Play, Some(unknown) => { eprintln!("unknown subcommand: {unknown}"); eprintln!("-h, --help for help"); std::process::exit(1); } } } fn print_help() { println!("\ USAGE: starkingdoms [FLAGS] [subcommand] FLAGS: -h, --help Prints help information -v, --version Prints version information SUBCOMMANDS: play Run the game (default)"); }