| // Copyright 2018 Guillaume Pinot (@TeXitoi) <texitoi@texitoi.eu> |
| // |
| // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or |
| // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your |
| // option. This file may not be copied, modified, or distributed |
| // except according to those terms. |
| |
| #[macro_use] |
| extern crate structopt; |
| |
| use structopt::StructOpt; |
| |
| #[derive(StructOpt, Debug)] |
| #[structopt(name = "example", about = "An example of StructOpt usage.")] |
| struct Opt { |
| /// A flag, true if used in the command line. |
| #[structopt(short = "d", long = "debug", help = "Activate debug mode")] |
| debug: bool, |
| |
| /// An argument of type float, with a default value. |
| #[structopt(short = "s", long = "speed", help = "Set speed", default_value = "42")] |
| speed: f64, |
| |
| /// Needed parameter, the first on the command line. |
| #[structopt(help = "Input file")] |
| input: String, |
| |
| /// An optional parameter, will be `None` if not present on the |
| /// command line. |
| #[structopt(help = "Output file, stdout if not present")] |
| output: Option<String>, |
| } |
| |
| fn main() { |
| let opt = Opt::from_args(); |
| println!("{:?}", opt); |
| } |