saito_core/core/io/
network_event.rs1use 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}