From 1293ea92bdbf3eb2086ec117e355714b6ee54ae9 Mon Sep 17 00:00:00 2001 From: A Farzat Date: Mon, 22 Jun 2026 19:56:40 +0300 Subject: Make Logger's output destination customizable This aids in testing and might allow logging to a file at a later point. --- src/generator/generation.rs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'src/generator/generation.rs') diff --git a/src/generator/generation.rs b/src/generator/generation.rs index 4235cd2..738373b 100644 --- a/src/generator/generation.rs +++ b/src/generator/generation.rs @@ -9,25 +9,27 @@ use crate::{ use super::MarkdownGenerator; -pub(super) struct MarkdownGeneration<'a, W: Write> { - logger: Logger, +pub(super) struct MarkdownGeneration<'a, W: Write, LW: Write> { + logger: &'a Logger, normalizer: Normalizer, paths: &'a [&'a Path], project_title: String, - renderer: Renderer, + renderer: Renderer<'a, W, LW>, seen_paths: HashSet, } -impl<'a, W: Write> MarkdownGeneration<'a, W> { - pub fn new(generator: MarkdownGenerator<'a>, output: W) -> Result { - let renderer = - Renderer::new(output, generator.render_options).with_logger(generator.logger); +impl<'a, W: Write, LW: Write> MarkdownGeneration<'a, W, LW> { + pub fn new( + generator: MarkdownGenerator<'a>, + output: W, + logger: &'a Logger, + ) -> Result { Ok(Self { - logger: generator.logger, + logger, normalizer: Normalizer::new(generator.root, generator.origin_base)?, paths: generator.paths, project_title: generator.get_or_derive_project_title().to_string(), - renderer, + renderer: Renderer::new(output, logger, generator.render_options), seen_paths: HashSet::new(), }) } -- cgit v1.3.1