intersession_layer_messaging/
local_delivery.rs1use crate::{DeliveryError, MessageMetadata};
2use async_trait::async_trait;
3use auto_impl::auto_impl;
4
5#[async_trait]
6#[auto_impl(Box, Arc)]
7pub trait LocalDelivery<M: MessageMetadata> {
8 async fn deliver(&self, message: M) -> Result<(), DeliveryError>;
9}
10
11#[async_trait]
12impl<M: MessageMetadata> LocalDelivery<M> for tokio::sync::mpsc::UnboundedSender<M> {
13 async fn deliver(&self, message: M) -> Result<(), DeliveryError> {
14 self.send(message).map_err(|_| DeliveryError::ChannelClosed)
15 }
16}