cometd_client/types/channel/
receiver.rs1use crate::types::CometdClientEvent;
2use async_broadcast::{Receiver, RecvError};
3
4#[derive(Debug)]
6pub struct CometdEventReceiver<Msg>(pub(crate) Receiver<CometdClientEvent<Msg>>);
7
8impl<Msg> CometdEventReceiver<Msg> {
9 #[inline(always)]
12 pub async fn recv(&mut self) -> Option<CometdClientEvent<Msg>> {
13 match self.0.recv().await {
14 Ok(data) => Some(data),
15 Err(RecvError::Closed) => None,
16 Err(RecvError::Overflowed(_)) => unreachable!(),
17 }
18 }
19}