saito_core/core/io/
network_event.rs

1use crate::core::defs::{BlockId, PeerIndex, SaitoHash, SaitoPublicKey};
2use crate::core::io::network::PeerDisconnectType;
3
4#[derive(Debug)]
5pub enum NetworkEvent {
6    OutgoingNetworkMessage {
7        peer_index: u64,
8        buffer: Vec<u8>,
9    },
10    OutgoingNetworkMessageForAll {
11        buffer: Vec<u8>,
12        exceptions: Vec<u64>,
13    },
14    IncomingNetworkMessage {
15        peer_index: u64,
16        buffer: Vec<u8>,
17    },
18    ConnectToPeer {
19        url: String,
20        peer_index: PeerIndex,
21    },
22    DisconnectFromPeer {
23        peer_index: u64,
24    },
25    PeerConnectionResult {
26        result: Result<(u64, Option<String>), std::io::Error>,
27    },
28    AddStunPeer {
29        peer_index: u64,
30        public_key: SaitoPublicKey,
31    },
32    RemoveStunPeer {
33        peer_index: u64,
34    },
35    PeerDisconnected {
36        peer_index: u64,
37        disconnect_type: PeerDisconnectType,
38    },
39    BlockFetchRequest {
40        block_hash: SaitoHash,
41        peer_index: u64,
42        url: String,
43        block_id: BlockId,
44    },
45    BlockFetched {
46        block_hash: SaitoHash,
47        block_id: BlockId,
48        peer_index: PeerIndex,
49        buffer: Vec<u8>,
50    },
51    BlockFetchFailed {
52        block_hash: SaitoHash,
53        peer_index: u64,
54        block_id: BlockId,
55    },
56}