verbosity/
lib.rs

1#![deny(clippy::all)]
2#![deny(clippy::pedantic)]
3#![deny(clippy::nursery)]
4#![deny(clippy::cargo)]
5#![deny(missing_docs)]
6// ==============================================================
7#![allow(clippy::module_name_repetitions)]
8#![allow(clippy::items_after_statements)]
9// ==============================================================
10#![doc(html_root_url = "https://docs.rs/verbosity/0.1.0")]
11
12//! Intended for use with `cli` commands this library lets you set a singleton [`Verbosity`]
13//! option to indicate different levels of reporting, i.e. `Quite` | `Terse` | `Verbose`
14//!
15//! ## Example
16//!
17//! ```no_run
18//! # use std::str::FromStr;
19//! # use verbosity::Verbosity;
20//! # use verbosity::Verbosity::*;
21//! let level = Verbosity::from_str(
22//!         &std::env::args().last().unwrap_or(String::new())
23//!     ).unwrap_or(Verbosity::Quite);
24//!
25//! level.set_as_global();
26//!
27//! match Verbosity::level() {
28//!     Quite => {}
29//!     Terse =>
30//!         println!("terse message"),
31//!     Verbose =>
32//!         println!("overly verbose message for some command")
33//! }
34//! ```
35//!
36//! ## Related Crate
37//!
38//! The [`cli-toolbox`] crate uses this library to provide a more ergonomic way of
39//! controlling reporting output
40//!
41//! _i.e._
42//! ```no_compile
43//! let level = Verbosity::from_str(
44//!         &std::env::args().last().unwrap_or(String::new())
45//!     ).unwrap_or(Verbosity::Quite);
46//!
47//! level.set_as_global();
48//!
49//! report! {
50//!     @terse "terse message"
51//!     @verbose "overly verbose message for some command"
52//! }
53//! ```
54//! [`Verbosity`]: verbosity::Verbosity
55//! [`cli-toolbox`]: <https://crates.io/crates/cli-toolbox>
56
57pub use crate::verbosity::Verbosity;
58
59#[cfg(test)]
60mod tests;
61
62mod verbosity;