Crate helptext

Crate helptext 

Source
Expand description

Create beautiful help messages.

The syntax of the help message is explained in the sections macro.

The syntax for styling text is explained in the text macro.

use helptext::{Help, sections};

const HELP: Help = Help(sections!(
    ["my-cool-program " {env!("CARGO_PKG_VERSION")}]
    ["Use " c:"-h" " for short descriptions and " c:"--help" " for more details."]
    []
    "Usage" {
        ["my-cool-program [OPTIONS] <INPUT>"]
    }
    "Options" {
        table Auto {
            "-h, --help" => {
                ["Print help information"]
                Long ["Use " c:"-h" " for short descriptions and " c:"--help" " for more details."]
            }
            "-p, --path <FILE>" => {
                ["File containing the pomsky expression to compile"]
            }
            "-V, --version" => {
                ["Print version information"]
            }
            "-W, --warnings <DIAGNOSTICS>" => {
                Short ["Disable certain warnings (disable all with " c:"-W0" ")"]
                Long ["Disable some or all warnings. A single warning can be disabled by specifying
the name followed by " c:"=0" ", for example:

    " c!"-Wcompat=0" "

Multiple warnings can be disabled by setting this option multiple times, or
using a comma-separated list:

    " c!"-Wcompat=0 -Wdeprecated=0
    -Wcompat=0,deprecated=0" "

To disable all warnings, use " c:"-W0" ".

Currently, the following warnings can be disabled:"]
                Long table Compact {
                    "compat"     => { ["Compatibility warnings"] }
                    "deprecated" => { ["A used feature will be removed in the future"] }
                }
            }
        }
    }
));

fn print_short_help(use_styles: bool) {
    HELP.write(
        &mut std::io::stdout().lock(),
        false,  // don't show long help
        use_styles,
    );
}

fn print_long_help(use_styles: bool) {
    HELP.write(
        &mut std::io::stdout().lock(),
        true,  // show long help
        use_styles,
    );
}

Result:

Short help

Long help

Macros§

sections
Macro to declare a list of help sections. This can be passed to Help to print it.
text
Macro to declare a list of text segments. A segment can be written as

Structs§

Help
A structured help message.
Segment

Enums§

HelpSection
Part of a help message. Should be created with the sections macro.
Style
All supported styles in the formatting machinery
TableMode