Macro cli_toolbox::eval[][src]

macro_rules! eval {
    (QUITE $expr : expr) => { ... };
    (TERSE $expr : expr) => { ... };
    (VERBOSE $expr : expr) => { ... };
    (TERSE $terse_block : block VERBOSE $verbose_block : block) => { ... };
    (TERSE $terse_expr : expr, VERBOSE $verbose_expr : expr) => { ... };
    (TERSE $terse_block : block VERBOSE $verbose_expr : expr) => { ... };
    (TERSE $terse_expr : expr, VERBOSE $verbose_block : block) => { ... };
}
Expand description

The eval! macro provides conditional code evaluation according to Verbosity level.

Features

  • you can evaluate code according to level of verbosity, i.e. Quite, Terse or Verbose

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

  • you can choose unique code evaluations for Terse or Verbose individually

Basic Examples

eval! { QUITE foo() }
eval! { TERSE foo() }
eval! { VERBOSE foo() }

Terse or Verbose Examples

These examples evaluate conditionally based on Verbosity level.

  • terse or verbose code blocks
eval! {
    TERSE   { foo(); }
    VERBOSE { junk(); }
}
  • terse or verbose expressions
eval! {
    TERSE   foo(),
    VERBOSE junk()
}
  • terse expression or verbose block
eval! {
    TERSE   foo(),
    VERBOSE { junk(); }
}
  • terse block or verbose expression
eval! {
    TERSE   { foo(); }
    VERBOSE junk()
}