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}