structopt v0.2.16 Release Notes

Release Date: 2019-05-29 // almost 5 years ago
  • 👌 Support optional options with optional argument, allowing cmd [--opt[=value]] by @sphynx (#188)

    Sometimes you want to represent an optional option that optionally takes an argument, i.e [--opt[=value]]. This is represented by Option<Option<T>>

    #[derive(StructOpt)]
    struct Opt {
      #[structopt(long)]
      fruit: Option<Option<String>>,
    }
    
    fn main() {
      assert_eq!(Opt::from_args(&["test"]), None);
      assert_eq!(Opt::from_args(&["test", "--fruit"]), Some(None));
      assert_eq!(Opt::from_args(&["test", "--fruit=apple"]), Some("apple"));
    }