Skip to main content

anodizer_core/log/
verbosity.rs

1//! Verbosity level derived from CLI flags.
2
3/// Verbosity level, derived from CLI flags.
4#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Default)]
5pub enum Verbosity {
6    Quiet,
7    #[default]
8    Normal,
9    Verbose,
10    Debug,
11}
12
13impl Verbosity {
14    /// Derive verbosity from CLI flag combination.
15    /// `--quiet` overrides `--verbose`; `--debug` overrides everything.
16    pub fn from_flags(quiet: bool, verbose: bool, debug: bool) -> Self {
17        if debug {
18            Verbosity::Debug
19        } else if quiet {
20            Verbosity::Quiet
21        } else if verbose {
22            Verbosity::Verbose
23        } else {
24            Verbosity::Normal
25        }
26    }
27}