|  | use structopt::StructOpt; | 
|  |  | 
|  | mod utils; | 
|  | use utils::*; | 
|  |  | 
|  | #[test] | 
|  | fn invisible_group_issue_439() { | 
|  | macro_rules! m { | 
|  | ($bool:ty) => { | 
|  | #[derive(Debug, StructOpt)] | 
|  | struct Opts { | 
|  | #[structopt(long = "x")] | 
|  | x: $bool, | 
|  | } | 
|  | }; | 
|  | } | 
|  |  | 
|  | m!(bool); | 
|  |  | 
|  | let help = get_long_help::<Opts>(); | 
|  |  | 
|  | assert!(help.contains("--x")); | 
|  | assert!(!help.contains("--x <x>")); | 
|  | Opts::from_iter_safe(&["test", "--x"]).unwrap(); | 
|  | } | 
|  |  | 
|  | #[test] | 
|  | fn issue_447() { | 
|  | macro_rules! Command { | 
|  | ( $name:ident, [ | 
|  | #[$meta:meta] $var:ident($inner:ty) | 
|  | ] ) => { | 
|  | #[derive(Debug, PartialEq, structopt::StructOpt)] | 
|  | enum $name { | 
|  | #[$meta] | 
|  | $var($inner), | 
|  | } | 
|  | }; | 
|  | } | 
|  |  | 
|  | Command! {GitCmd, [ | 
|  | #[structopt(external_subcommand)] | 
|  | Ext(Vec<String>) | 
|  | ]} | 
|  | } |