use tokio::sync::mpsc;
use super::Event;
#[derive(Clone, Debug)]
pub struct EventSender {
inner: mpsc::Sender<Event>,
}
impl EventSender {
pub(super) fn new(inner: mpsc::Sender<Event>) -> Self {
Self { inner }
}
pub async fn send(&self, event: Event) -> Result<(), super::SendError> {
self.inner
.send(event)
.await
.map_err(|e| super::SendError(e.0))
}
}
#[cfg(test)]
mod tests {
#![allow(clippy::missing_panics_doc)]
use super::*;
#[test]
fn trait_send() {
fn assert_send<T: Send>() {}
assert_send::<EventSender>();
}
#[test]
fn trait_sync() {
fn assert_sync<T: Sync>() {}
assert_sync::<EventSender>();
}
#[test]
fn trait_unpin() {
fn assert_unpin<T: Unpin>() {}
assert_unpin::<EventSender>();
}
}