use crate::*;
impl<T: Clone + Debug> BroadcastTrait for T {}
impl<T: BroadcastTrait> Default for Broadcast<T> {
#[inline(always)]
fn default() -> Self {
let sender: BroadcastSender<T> = BroadcastSender::new(DEFAULT_BROADCAST_SENDER_CAPACITY);
Self(sender)
}
}
impl<T: BroadcastTrait> Broadcast<T> {
#[inline(always)]
pub fn new(capacity: Capacity) -> Self {
let sender: BroadcastSender<T> = BroadcastSender::new(capacity);
Self(sender)
}
#[inline(always)]
pub fn receiver_count(&self) -> ReceiverCount {
self.0.receiver_count()
}
#[inline(always)]
pub fn subscribe(&self) -> BroadcastReceiver<T> {
self.0.subscribe()
}
#[inline(always)]
pub fn send(&self, data: T) -> BroadcastSendResult<T> {
self.0.send(data)
}
}