synaptic_condenser/
pipeline.rs1use std::sync::Arc;
2
3use crate::Condenser;
4use async_trait::async_trait;
5use synaptic_core::{Message, SynapticError};
6
7pub struct PipelineCondenser(pub Vec<Arc<dyn Condenser>>);
9
10impl PipelineCondenser {
11 pub fn new(condensers: Vec<Arc<dyn Condenser>>) -> Self {
12 Self(condensers)
13 }
14}
15
16#[async_trait]
17impl Condenser for PipelineCondenser {
18 async fn condense(&self, mut messages: Vec<Message>) -> Result<Vec<Message>, SynapticError> {
19 for c in &self.0 {
20 messages = c.condense(messages).await?;
21 }
22 Ok(messages)
23 }
24}