Macro cli_toolbox::report[][src]

macro_rules! report {
    ($msg : expr) => { ... };
    ($msg : expr, $($arg : expr), *) => { ... };
    (VERBOSE $msg : expr) => { ... };
    (VERBOSE $msg : expr, $($arg : expr), *) => { ... };
    (ERR $msg : expr) => { ... };
    (ERR $msg : expr, $($arg : expr), *) => { ... };
    (ERRV $msg : expr) => { ... };
    (ERRV $msg : expr, $($arg : expr), *) => { ... };
    (TERSE $terse_msg : expr ; VERBOSE $verbose_msg : expr ;) => { ... };
    (TERSE $terse_msg : expr, $($terse_arg : expr), * ; VERBOSE $verbose_msg :
 expr ;) => { ... };
    (TERSE $terse_msg : expr ; VERBOSE $verbose_msg : expr,
 $($verbose_arg : expr), * ;) => { ... };
    (TERSE $terse_msg : expr, $($terse_arg : expr), * ; VERBOSE $verbose_msg :
 expr, $($verbose_arg : expr), * ;) => { ... };
    (ERR $terse_msg : expr ; ERRV $verbose_msg : expr ;) => { ... };
    (ERR $terse_msg : expr, $($terse_arg : expr), * ; ERRV $verbose_msg : expr ;) => { ... };
    (ERR $terse_msg : expr ; ERRV $verbose_msg : expr, $($verbose_arg : expr), *
 ;) => { ... };
    (ERR $terse_msg : expr, $($terse_arg : expr), * ; ERRV $verbose_msg : expr,
 $($verbose_arg : expr), * ;) => { ... };
    (@ $msg : expr) => { ... };
    (@ $msg : expr, $($val : expr), *) => { ... };
    (@ ERR $msg : expr) => { ... };
    (@ ERR $msg : expr, $($val : expr), *) => { ... };
}
Expand description

The report! macro provides conditional user output and error reporting according to Verbosity level.

Features

  • you can report user output and error messages at two levels of detail, i.e. Terse or Verbose

  • the user can set the level of reporting they want to endure 🙃, i.e. Quite, Terse or Verbose

  • all Terse output will also output if the level is set to Verbose

  • you can also choose unique output for Terse or Verbose

  • you can format output with application state

Terse Examples

These examples output only if Verbosity level is greater than Quite.

  • basic output to stdout
report! { "some user output" }
  • formatted output to stdout
report! { "some formatted user output; {}", 42 }
  • basic output to stderr
report! { ERR "some error message" }
  • formatted output to stderr
report! { ERR "some formatted error message; {}", -42 }

Verbose Examples

These examples output only if Verbosity level is greater than Terse.

  • basic output to stdout
report! { VERBOSE "some detailedd user output" }
  • formatted output to stdout
report! { VERBOSE "some formatted more detailed user output; {}", 42 }
  • basic output to stderr
report! { ERRV "some detailedd error message" }
  • formatted output to stderr
report! { ERRV "some formatted more detailed error message; {}", -42 }

Terse or Verbose Examples

These examples conditionally output if Verbosity level is greater than Quite.

  • output to stdout
// the following will output only one of the two messages, either branch accepts formatting
report! {
    TERSE   "some user output";
    VERBOSE "some formatted more detailed user output; {}", 42;
}
  • output to stderr
// the following will output only one of the two messages, either branch accepts formatting
report! {
    ERR  "some error message";
    ERRV "some formatted more detailed error message; {}", -42;
}