hyperlane_broadcast/broadcast/
impl.rs1use crate::*;
2
3impl<T: Clone + Debug> BroadcastTrait for T {}
4
5impl<T: BroadcastTrait> Default for Broadcast<T> {
6 fn default() -> Self {
7 let sender: BroadcastSender<T> = BroadcastSender::new(DEFAULT_BROADCAST_SENDER_CAPACITY);
8 Broadcast {
9 capacity: 0,
10 sender,
11 }
12 }
13}
14
15impl<T: BroadcastTrait> Broadcast<T> {
16 pub fn new(capacity: usize) -> Self {
17 let sender: BroadcastSender<T> = BroadcastSender::new(capacity);
18 let mut broadcast: Broadcast<T> = Broadcast::default();
19 broadcast.set_sender(sender);
20 broadcast.set_capacity(capacity);
21 broadcast
22 }
23
24 pub fn receiver_count(&self) -> usize {
25 self.get_sender().receiver_count()
26 }
27
28 pub fn subscribe(&self) -> BroadcastReceiver<T> {
29 self.get_sender().subscribe()
30 }
31
32 pub fn send(&self, data: T) -> BroadcastSendResult<T> {
33 self.get_sender().send(data)
34 }
35}