Skip to main content

spider_lib/pipelines/
console_writer.rs

1use crate::{item::ScrapedItem, pipeline::Pipeline, PipelineError};
2use async_trait::async_trait;
3use tracing::info;
4
5/// A pipeline that prints scraped items to the console.
6pub struct ConsoleWriterPipeline;
7
8impl ConsoleWriterPipeline {
9    /// Creates a new `ConsoleWriterPipeline`.
10    pub fn new() -> Self {
11        Self
12    }
13}
14
15impl Default for ConsoleWriterPipeline {
16    fn default() -> Self {
17        Self::new()
18    }
19}
20
21#[async_trait]
22impl<I: ScrapedItem> Pipeline<I> for ConsoleWriterPipeline {
23    fn name(&self) -> &str {
24        "ConsoleWriterPipeline"
25    }
26
27    async fn process_item(&self, item: I) -> Result<Option<I>, PipelineError> {
28        info!("Pipeline processing item: {:?}", item);
29        Ok(Some(item))
30    }
31}