docbox_core/events/
mpsc.rs1use tokio::sync::mpsc;
2
3use super::{EventPublisher, TenantEventMessage};
4
5#[derive(Clone)]
8pub struct MpscEventPublisher {
9 tx: mpsc::UnboundedSender<TenantEventMessage>,
10}
11
12impl MpscEventPublisher {
13 pub fn new() -> (Self, mpsc::UnboundedReceiver<TenantEventMessage>) {
14 let (tx, rx) = mpsc::unbounded_channel();
15 (Self { tx }, rx)
16 }
17}
18
19impl EventPublisher for MpscEventPublisher {
20 fn publish_event(&self, event: super::TenantEventMessage) {
21 tracing::debug!(?event, "mpsc tenant event");
22 _ = self.tx.send(event);
23 }
24}