
```no_run
use bpaf::*;

#[derive(Debug, Clone, Bpaf)]
#[bpaf(options)]
pub struct Options {
    /// A custom switch
    switch: bool,

    /// A custom argument
    argument: usize,
}

fn main() {
    println!("{:?}", options().run())
}
```


Output

bpaf generates a help message

$ app --help

Usage: app [--switch] --argument=ARG

Available options:

    --switch

A custom switch

    --argument=ARG

A custom argument

-h, --help

Prints help information

And two parsers. Numeric argument is required, boolean switch is optional and fall back value
is false.

$ app --switch
Error: expected --argument=ARG, pass --help for usage information

$ app --switch --argument 42
Options { switch: true, argument: 42 }

$ app --argument 42
Options { switch: false, argument: 42 }

