use crate::message::SignedMessage;
use tokio::sync::broadcast;
pub(in crate::message_pool) const MPOOL_UPDATE_CHANNEL_CAPACITY: usize = 256;
#[derive(Clone, Debug)]
pub enum MpoolUpdate {
Add(SignedMessage),
#[allow(dead_code)]
Remove(SignedMessage),
}
#[derive(Debug)]
pub struct MpoolSubscriber(broadcast::Sender<MpoolUpdate>);
impl MpoolSubscriber {
pub(crate) fn new(events: broadcast::Sender<MpoolUpdate>) -> Self {
Self(events)
}
#[cfg(test)]
pub(crate) fn dummy() -> Self {
Self(broadcast::channel(1).0)
}
pub(crate) fn subscribe(&self) -> broadcast::Receiver<MpoolUpdate> {
self.0.subscribe()
}
}