hyperlane_broadcast/broadcast/
impl.rs

1use 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}