|  | //! How to extract subcommands' args into external structs. | 
|  | //! | 
|  | //! Running this example with --help prints this message: | 
|  | //! ----------------------------------------------------- | 
|  | //! classify 0.3.25 | 
|  | //! | 
|  | //! USAGE: | 
|  | //!     enum_tuple <SUBCOMMAND> | 
|  | //! | 
|  | //! FLAGS: | 
|  | //!     -h, --help       Prints help information | 
|  | //!     -V, --version    Prints version information | 
|  | //! | 
|  | //! SUBCOMMANDS: | 
|  | //!     foo | 
|  | //!     help    Prints this message or the help of the given subcommand(s) | 
|  | //! ----------------------------------------------------- | 
|  |  | 
|  | use structopt::StructOpt; | 
|  |  | 
|  | #[derive(Debug, StructOpt)] | 
|  | pub struct Foo { | 
|  | pub bar: Option<String>, | 
|  | } | 
|  |  | 
|  | #[derive(Debug, StructOpt)] | 
|  | pub enum Command { | 
|  | #[structopt(name = "foo")] | 
|  | Foo(Foo), | 
|  | } | 
|  |  | 
|  | #[derive(Debug, StructOpt)] | 
|  | #[structopt(name = "classify")] | 
|  | pub struct ApplicationArguments { | 
|  | #[structopt(subcommand)] | 
|  | pub command: Command, | 
|  | } | 
|  |  | 
|  | fn main() { | 
|  | let opt = ApplicationArguments::from_args(); | 
|  | println!("{:?}", opt); | 
|  | } |