title: Can I remove a struct field that was added via "#[clap(flatten)]"?
body: <p>I have a struct that looks like this (context is a CLI application):</p>
  <pre class="lang-rust prettyprint-override"><code>pub struct MyArgs {
      #[clap(flatten)]
      #[serde(flatten)]
      pub args: CommonArgs
  }
  </code></pre>
  <p>Where <code>CommonArgs</code> is some other struct which contains arguments shared between multiple CLI subcommands.</p>
  <p>Now, it just so happens that I have one subcommand in which I would like to remove one field that is found in <code>CommonArgs</code> (though I would prefer to keep that field in <code>CommonArgs</code>, because I need it in all other subcommands).</p>
  <p>Can I remove that field selectively from <code>MyArgs</code>? This might be a naive analogy, but here's the equivalent of what I want to do in JavaScript:</p>
  <pre class="lang-js prettyprint-override"><code>const CommonArgs = {
    foo: 1,
    bar: 2,
    baz: 3,
  };
  
  const MyArgs = {
    ...CommonArgs,
  }
  
  delete MyArgs.baz;
  </code></pre>
  <p>This would in effect erase the <code>baz</code> field from the <code>MyArgs</code> object, though it would keep all other fields from <code>CommonArgs</code>.</p>
  <p>Can I do this in Rust (without refactoring all other fields to a new struct)?</p>