scatter_net/legacy/net/methods/
get_state.rs

1use anyhow::Result;
2
3use crate::{NetState, Peer, PeerState, ScatterNet};
4
5impl ScatterNet {
6    #[allow(clippy::significant_drop_tightening)]
7    pub fn get_state(&self) -> Result<NetState> {
8        let peers: Vec<Peer> = self.read().peers.values().cloned().collect();
9
10        let peers: Vec<PeerState> = peers.iter().map(Peer::get_state).collect();
11
12        let mut guard = self.write();
13        let state = &mut guard.state;
14
15        state.peers = peers;
16
17        Ok(state.clone())
18    }
19}