Upgrade rust/crates/structopt to 0.3.21

Test: make
Change-Id: I8b7f385accd0609f9b56cc77c55af99ca40c5241
diff --git a/tests/regressions.rs b/tests/regressions.rs
old mode 100755
new mode 100644
index 876e7ed..3847dc2
--- a/tests/regressions.rs
+++ b/tests/regressions.rs
@@ -23,3 +23,23 @@
     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>)
+    ]}
+}