Enum libp2p_kad::handler::KademliaHandlerEvent
source · [−]pub enum KademliaHandlerEvent<TUserData> {
ProtocolConfirmed {
endpoint: ConnectedPoint,
},
FindNodeReq {
key: Vec<u8>,
request_id: KademliaRequestId,
},
FindNodeRes {
closer_peers: Vec<KadPeer>,
user_data: TUserData,
},
GetProvidersReq {
key: Key,
request_id: KademliaRequestId,
},
GetProvidersRes {
closer_peers: Vec<KadPeer>,
provider_peers: Vec<KadPeer>,
user_data: TUserData,
},
QueryError {
error: KademliaHandlerQueryErr,
user_data: TUserData,
},
AddProvider {
key: Key,
provider: KadPeer,
},
GetRecord {
key: Key,
request_id: KademliaRequestId,
},
GetRecordRes {
record: Option<Record>,
closer_peers: Vec<KadPeer>,
user_data: TUserData,
},
PutRecord {
record: Record,
request_id: KademliaRequestId,
},
PutRecordRes {
key: Key,
value: Vec<u8>,
user_data: TUserData,
},
}
Expand description
Event produced by the Kademlia handler.
Variants
ProtocolConfirmed
Fields
endpoint: ConnectedPoint
The configured protocol name has been confirmed by the peer through a successfully negotiated substream.
This event is only emitted once by a handler upon the first successfully negotiated inbound or outbound substream and indicates that the connected peer participates in the Kademlia overlay network identified by the configured protocol name.
FindNodeReq
Fields
request_id: KademliaRequestId
Identifier of the request. Needs to be passed back when answering.
Request for the list of nodes whose IDs are the closest to key
. The number of nodes
returned is not specified, but should be around 20.
FindNodeRes
Fields
Response to an KademliaHandlerIn::FindNodeReq
.
GetProvidersReq
Fields
key: Key
The key for which providers are requested.
request_id: KademliaRequestId
Identifier of the request. Needs to be passed back when answering.
Same as FindNodeReq
, but should also return the entries of the local providers list for
this key.
GetProvidersRes
Fields
Response to an KademliaHandlerIn::GetProvidersReq
.
QueryError
Fields
error: KademliaHandlerQueryErr
The error that happened.
An error happened when performing a query.
AddProvider
Fields
key: Key
The key for which the peer is a provider of the associated value.
provider: KadPeer
The peer that is the provider of the value for key
.
The peer announced itself as a provider of a key.
GetRecord
Fields
key: Key
Key for which we should look in the dht
request_id: KademliaRequestId
Identifier of the request. Needs to be passed back when answering.
Request to get a value from the dht records
GetRecordRes
Fields
Response to a KademliaHandlerIn::GetRecord
.
PutRecord
Fields
record: Record
request_id: KademliaRequestId
Identifier of the request. Needs to be passed back when answering.
Request to put a value in the dht records
PutRecordRes
Fields
key: Key
The key of the stored record.
Response to a request to store a record.
Trait Implementations
Auto Trait Implementations
impl<TUserData> RefUnwindSafe for KademliaHandlerEvent<TUserData> where
TUserData: RefUnwindSafe,
impl<TUserData> Send for KademliaHandlerEvent<TUserData> where
TUserData: Send,
impl<TUserData> Sync for KademliaHandlerEvent<TUserData> where
TUserData: Sync,
impl<TUserData> Unpin for KademliaHandlerEvent<TUserData> where
TUserData: Unpin,
impl<TUserData> UnwindSafe for KademliaHandlerEvent<TUserData> where
TUserData: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more