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.sender = sender;
20 broadcast.capacity = capacity;
21 broadcast
22 }
23
24 pub fn receiver_count(&self) -> usize {
25 self.sender.receiver_count()
26 }
27
28 pub fn subscribe(&self) -> BroadcastReceiver<T> {
29 self.sender.subscribe()
30 }
31
32 pub fn send(&self, data: T) -> BroadcastSendResult<T> {
33 self.sender.send(data)
34 }
35}