
```no_run
#[derive(Debug, Clone)]
pub struct Options {
    package: Option<String>,
}

pub fn options() -> OptionParser<Options> {
    let help = long("help").short('H').help("Renders help information");
    let version = long("version")
        .short('v')
        .help("Renders version information");
    let package = short('p')
        .help("Package to check")
        .argument("SPEC")
        .optional();

    construct!(Options { package })
        .to_options()
        .descr("Command with custom flags for help and version")
        .version("0.42")
        .help_parser(help)
        .version_parser(version)
}

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


Output

This example replaces description and short name for `--help` parser. Long name works as is

$ app --help

Command with custom flags for help and version

Usage: app [-p=SPEC]

Available options:

-p=SPEC

Package to check

-H, --help

Renders help information

-v, --version

Renders version information

Short name is now capitalized

$ app -H

Command with custom flags for help and version

Usage: app [-p=SPEC]

Available options:

-p=SPEC

Package to check

-H, --help

Renders help information

-v, --version

Renders version information

and old short name no longer works.

$ app -h
Error: -h is not expected in this context

Same with `--version` parser - new description, original long name and custom short name are
both working

$ app --version

Version: 0.42

$ app -v

Version: 0.42

