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

    /// A custom argument
    #[bpaf(long("my-argument"), short('A'))]
    argument: usize,
}

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


Output

`bpaf` uses custom names in help message

$ app --help

Usage: app [-s] -A=ARG

Available options:

-s, --switch

A custom switch

-A, --my-argument=ARG

A custom argument

-h, --help

Prints help information

As well as accepts them on a command line and uses in error message

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

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

