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