weaver_lib/tasks/
mod.rs

1pub mod atom_feed_task;
2pub mod common;
3pub mod public_copy_task;
4pub mod sitemap_task;
5pub mod well_known_copy_task;
6
7use std::{collections::HashMap, sync::Arc};
8
9use async_trait::async_trait;
10use liquid::model::KString;
11
12use crate::{
13    BuildError,
14    config::WeaverConfig,
15    renderers::{WritableFile, globals::LiquidGlobalsPage},
16};
17
18#[async_trait]
19pub trait WeaverTask: Send + Sync {
20    async fn run(
21        &self,
22        config: Arc<WeaverConfig>,
23        content: &Arc<HashMap<KString, LiquidGlobalsPage>>,
24    ) -> Result<Option<WritableFile>, BuildError>;
25}