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}