synaptic_callbacks/
composite.rs1use std::sync::Arc;
2
3use async_trait::async_trait;
4use synaptic_core::{CallbackHandler, RunEvent, SynapticError};
5
6pub struct CompositeCallback {
7 handlers: Vec<Arc<dyn CallbackHandler>>,
8}
9
10impl CompositeCallback {
11 pub fn new(handlers: Vec<Arc<dyn CallbackHandler>>) -> Self {
12 Self { handlers }
13 }
14}
15
16#[async_trait]
17impl CallbackHandler for CompositeCallback {
18 async fn on_event(&self, event: RunEvent) -> Result<(), SynapticError> {
19 for handler in &self.handlers {
20 handler.on_event(event.clone()).await?;
21 }
22 Ok(())
23 }
24}