1 //! How to use flattening. 2 //! 3 //! Running this example with --help prints this message: 4 //! ----------------------------------------------------- 5 //! structopt 0.3.25 6 //! 7 //! USAGE: 8 //! flatten [FLAGS] -g <group> -u <user> 9 //! 10 //! FLAGS: 11 //! -h, --help Prints help information 12 //! -V, --version Prints version information 13 //! -v switch verbosity on 14 //! 15 //! OPTIONS: 16 //! -g <group> daemon group 17 //! -u <user> daemon user 18 //! ----------------------------------------------------- 19 20 use structopt::StructOpt; 21 22 #[derive(StructOpt, Debug)] 23 struct Cmdline { 24 /// switch verbosity on 25 #[structopt(short)] 26 verbose: bool, 27 28 #[structopt(flatten)] 29 daemon_opts: DaemonOpts, 30 } 31 32 #[derive(StructOpt, Debug)] 33 struct DaemonOpts { 34 /// daemon user 35 #[structopt(short)] 36 user: String, 37 38 /// daemon group 39 #[structopt(short)] 40 group: String, 41 } 42 main()43fn main() { 44 let opt = Cmdline::from_args(); 45 println!("{:?}", opt); 46 } 47