use crate::types::CometdClientEvent;
use async_broadcast::{Receiver, RecvError};
#[derive(Debug)]
pub struct CometdEventReceiver<Msg>(pub(crate) Receiver<CometdClientEvent<Msg>>);
impl<Msg> CometdEventReceiver<Msg> {
#[inline(always)]
pub async fn recv(&mut self) -> Option<CometdClientEvent<Msg>> {
match self.0.recv().await {
Ok(data) => Some(data),
Err(RecvError::Closed) => None,
Err(RecvError::Overflowed(_)) => unreachable!(),
}
}
}