bixverse_sparse/verbosity.rs
1//! Verbosity levels shared across the bixverse crates.
2
3/// Enum that controls verbosity
4#[derive(Clone, Copy, Debug, Default)]
5pub enum Verbosity {
6 /// No verbosity at all
7 #[default]
8 Quiet,
9 /// Normal levels of verbosity
10 Normal,
11 /// Detailed verbosity with increased messages
12 Detailed,
13}
14
15impl Verbosity {
16 /// Returns true if normal or detailed verbosity is set
17 pub fn normal_verbosity(&self) -> bool {
18 matches!(self, Verbosity::Normal | Verbosity::Detailed)
19 }
20
21 /// Returns true if detailed verbosity is set
22 pub fn detailed_verbosity(&self) -> bool {
23 matches!(self, Verbosity::Detailed)
24 }
25}
26
27/// Parse verbosity leverl
28///
29/// ### Params
30///
31/// * `level` - If `1` returns [Verbosity::Normal], with `2`
32/// [Verbosity::Detailed]
33///
34/// ### Returns
35///
36/// The desired [Verbosity] level.
37pub fn parse_verbosity_level(level: usize) -> Verbosity {
38 match level {
39 0 => Verbosity::Quiet,
40 1 => Verbosity::Normal,
41 2 => Verbosity::Detailed,
42 _ => Verbosity::Quiet,
43 }
44}