diff options
Diffstat (limited to 'src/logger.rs')
| -rw-r--r-- | src/logger.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/logger.rs b/src/logger.rs index 8841bcc..0352d61 100644 --- a/src/logger.rs +++ b/src/logger.rs @@ -1,26 +1,36 @@ +//! Minimal stderr logging utilities. + +/// Logging verbosity level. #[derive(Copy, Clone, Debug, PartialEq, Eq)] pub enum Verbosity { + /// Suppress warnings and informational messages. Quiet, + /// Emit warnings but suppress informational messages. Normal, + /// Emit warnings and informational messages. Verbose, } +/// Lightweight logger used by renderers and generators. #[derive(Copy, Clone, Debug, PartialEq, Eq)] pub struct Logger { verbosity: Verbosity, } impl Logger { + /// Creates a logger with the given verbosity. pub fn new(verbosity: Verbosity) -> Self { Self { verbosity } } + /// Emits a warning unless verbosity is [`Verbosity::Quiet`]. pub fn warn(&self, message: impl AsRef<str>) { if self.verbosity != Verbosity::Quiet { eprintln!("Warning: {}", message.as_ref()); } } + /// Emits an informational message only when verbosity is [`Verbosity::Verbose`]. pub fn info(&self, message: impl AsRef<str>) { if self.verbosity == Verbosity::Verbose { eprintln!("Info: {}", message.as_ref()); |
