Skip to content

Utility library for working with cli output ergonomically

License

Notifications You must be signed in to change notification settings

Nejat/cli-toolbox-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Utility library for working with cli output ergonomically

Resources

License

Stars

Watchers

Forks

Packages

No packages published