scatter_net/scatter_net/peer/methods/init.rs
1use crate::{spawn_and_forget, Peer};
2
3impl Peer {
4 pub fn init(&self) {
5 self.clone().listen(self.read().connection.clone());
6
7 if !self
8 .net
9 .get_peer_groups()
10 .iter()
11 .any(|peer_group| peer_group.has_peer(self))
12 {
13 let peer = self.clone();
14
15 spawn_and_forget(async move { Ok(peer.select_peer_group().await?) });
16 }
17
18 let node_id = self.node_id;
19
20 self.net.write().peers.insert(node_id, self.clone());
21 }
22}