//! How to use environment variable fallback an how it //! interacts with `default_value`. //! //! Running this example with --help prints this message: //! ----------------------------------------------------- //! env 0.3.25 //! Example for allowing to specify options via environment variables //! //! USAGE: //! env [OPTIONS] --api-url //! //! FLAGS: //! -h, --help Prints help information //! -V, --version Prints version information //! //! OPTIONS: //! --api-url URL for the API server [env: API_URL=] //! --retries Number of retries [env: RETRIES=] [default: 5] //! ----------------------------------------------------- use structopt::StructOpt; /// Example for allowing to specify options via environment variables. #[derive(StructOpt, Debug)] #[structopt(name = "env")] struct Opt { // Use `env` to enable specifying the option with an environment // variable. Command line arguments take precedence over env. /// URL for the API server #[structopt(long, env = "API_URL")] api_url: String, // The default value is used if neither argument nor environment // variable is specified. /// Number of retries #[structopt(long, env = "RETRIES", default_value = "5")] retries: u32, } fn main() { let opt = Opt::from_args(); println!("{:#?}", opt); }