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/renderer.rs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/renderer.rs') diff --git a/src/renderer.rs b/src/renderer.rs index bb21100..6ebc8ba 100644 --- a/src/renderer.rs +++ b/src/renderer.rs @@ -4,7 +4,7 @@ use std::{ path::Path, }; -use crate::{normalizer::NormalizedPath, util::path_display::display_path}; +use crate::{logger::Logger, normalizer::NormalizedPath, util::path_display::display_path}; const DEFAULT_MAX_FILE_SIZE: u64 = 1_000_000; @@ -12,6 +12,7 @@ const DEFAULT_MAX_FILE_SIZE: u64 = 1_000_000; pub struct Renderer { output: W, max_file_size: u64, + logger: Logger, } impl Renderer { @@ -19,6 +20,7 @@ impl Renderer { Self { output, max_file_size: DEFAULT_MAX_FILE_SIZE, + logger: Logger::default(), } } @@ -27,6 +29,11 @@ impl Renderer { self } + pub fn with_logger(mut self, logger: Logger) -> Self { + self.logger = logger; + self + } + pub fn render_header(&mut self, project_name: &str) -> std::io::Result<()> { writeln!(self.output, "# {}", project_name) } @@ -75,16 +82,19 @@ impl Renderer { } fn warn_about_filesize(&self, filename: &Path, filesize: u64) { - eprintln!( + self.logger.warn(format!( "Warning: skipping large file: {} ({} > limit {})", display_path(filename), human_readable_size(filesize), human_readable_size(self.max_file_size), - ) + )) } fn warn_about_binary_file(&self, filename: &Path) { - eprintln!("Warning: skipping binary file: {}", display_path(filename)) + self.logger.warn(format!( + "Warning: skipping binary file: {}", + display_path(filename) + )) } } -- cgit v1.3.1