summaryrefslogtreecommitdiff
path: root/src/generator/generation.rs
diff options
context:
space:
mode:
authorA Farzat <a@farzat.xyz>2026-06-22 19:56:40 +0300
committerA Farzat <a@farzat.xyz>2026-06-22 19:56:40 +0300
commit1293ea92bdbf3eb2086ec117e355714b6ee54ae9 (patch)
tree9de76726abd8c4de07904c7ed0284599211a53db /src/generator/generation.rs
parent711df9de70e8a61a441b7ba7200ae006258ce978 (diff)
downloadrepo2markdown-1293ea92bdbf3eb2086ec117e355714b6ee54ae9.tar.gz
repo2markdown-1293ea92bdbf3eb2086ec117e355714b6ee54ae9.zip
Make Logger's output destination customizableHEADmaster
This aids in testing and might allow logging to a file at a later point.
Diffstat (limited to 'src/generator/generation.rs')
-rw-r--r--src/generator/generation.rs20
1 files changed, 11 insertions, 9 deletions
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<LW>,
normalizer: Normalizer,
paths: &'a [&'a Path],
project_title: String,
- renderer: Renderer<W>,
+ renderer: Renderer<'a, W, LW>,
seen_paths: HashSet<NormalizedPath>,
}
-impl<'a, W: Write> MarkdownGeneration<'a, W> {
- pub fn new(generator: MarkdownGenerator<'a>, output: W) -> Result<Self, NormalizeError> {
- 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<LW>,
+ ) -> Result<Self, NormalizeError> {
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(),
})
}