p2p/network/kad/request/
p2p_network_kad_request_state.rs

1use std::net::SocketAddr;
2
3use malloc_size_of_derive::MallocSizeOf;
4use serde::{Deserialize, Serialize};
5
6use crate::{P2pNetworkKadEntry, PeerId, StreamId};
7
8#[derive(Debug, Clone, Serialize, Deserialize, MallocSizeOf)]
9pub struct P2pNetworkKadRequestState {
10    /// ID of the peer we want to send request to.
11    pub peer_id: PeerId,
12    /// Request key, resulting entries will be those that closest to it.
13    pub key: PeerId,
14    /// Address
15    #[ignore_malloc_size_of = "doesn't allocate"]
16    pub addr: SocketAddr,
17    /// Request status.
18    pub status: P2pNetworkKadRequestStatus,
19}
20
21#[derive(Debug, Clone, Serialize, Deserialize, Default, MallocSizeOf)]
22pub enum P2pNetworkKadRequestStatus {
23    #[default]
24    Default,
25    Disconnected,
26    WaitingForConnection,
27    WaitingForKadStream(StreamId),
28    Request(Vec<u8>),
29    WaitingForReply,
30    Reply(Vec<P2pNetworkKadEntry>),
31    Error(String),
32}