From cc23e7734459f3e118dd6204b13296caf83591b2 Mon Sep 17 00:00:00 2001 From: A Farzat Date: Sat, 6 Jun 2026 12:59:45 +0300 Subject: Delegate logging management to Logger struct Allows verbosity management in a centralized way. --- src/logger.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/logger.rs (limited to 'src/logger.rs') diff --git a/src/logger.rs b/src/logger.rs new file mode 100644 index 0000000..a1db035 --- /dev/null +++ b/src/logger.rs @@ -0,0 +1,30 @@ +#[derive(Copy, Clone, Debug, PartialEq, Eq)] +pub enum Verbosity { + Quiet, + Normal, +} + +#[derive(Copy, Clone, Debug, PartialEq, Eq)] +pub struct Logger { + verbosity: Verbosity, +} + +impl Logger { + pub fn new(verbosity: Verbosity) -> Self { + Self { verbosity } + } + + pub fn warn(&self, message: impl AsRef) { + if self.verbosity != Verbosity::Quiet { + eprintln!("{}", message.as_ref()); + } + } +} + +impl Default for Logger { + fn default() -> Self { + Self { + verbosity: Verbosity::Quiet, + } + } +} -- cgit v1.3.1