cli-toolbox

Crates.iocli-toolbox
lib.rscli-toolbox
version0.8.0
sourcesrc
created_at2021-08-03 15:33:34.217827
updated_at2021-11-06 05:03:36.003171
descriptionUtility library for working with cli output ergonomically
homepagehttps://github.com/Nejat/cli-toolbox-rs
repositoryhttps://github.com/Nejat/cli-toolbox-rs
max_upload_size
id430980
size65,086
Nejat (Nejat)

documentation

README

cli-toolbox

Utility library for working with cli output ergonomically.

This is not a logging alternative, it's intended to produce output for end user consumption.

It handles three levels of verbosity that can be set dynamically at runtime:

  • Quite - no output
  • Terse - used to provide minimal user output
  • Verbose - used to provide elaborated and/or additional user output

Output Macros

  • debug! - conditionally compiled console debugging output - [debug]

  • report! - conditional console output according to verbosity level - [debug|release]

* debug! is intended to be used during application development

* all other debugging and telemetry output is most likely better served with a logging library

Conditional Code

  • eval! - conditional code execution according to verbosity level - [debug|release]

  • release! - conditional code execution according to verbosity level - [release]

Resources

  • Docs for more detailed information
  • Examples to see it in action

Usage

Each macro is gated by a feature.

No feature is mutually exclusive and can be combined as needed.

  • debug! macro
[dependencies]
cli-toolbox = { version = "0.8", features = ["debug"] }
  • eval! macro
[dependencies]
cli-toolbox = { version = "0.8", features = ["eval"] }
verbosity = "0.1"
  • release! macro
[dependencies]
cli-toolbox = { version = "0.8", features = ["release"] }
verbosity = "0.1"
  • report! macro
[dependencies]
cli-toolbox = { version = "0.8", features = ["report"] }
verbosity = "0.1"

Roadmap

  • ...

Implemented

  • debug! macro
  • eval! macro
  • release! macro
  • report! macro
Commit count: 122

cargo fmt