Enum libp2p_kad::handler::KademliaHandlerIn [−][src]
pub enum KademliaHandlerIn<TUserData> {
Reset(KademliaRequestId),
FindNodeReq {
key: Vec<u8>,
user_data: TUserData,
},
FindNodeRes {
closer_peers: Vec<KadPeer>,
request_id: KademliaRequestId,
},
GetProvidersReq {
key: Key,
user_data: TUserData,
},
GetProvidersRes {
closer_peers: Vec<KadPeer>,
provider_peers: Vec<KadPeer>,
request_id: KademliaRequestId,
},
AddProvider {
key: Key,
provider: KadPeer,
},
GetRecord {
key: Key,
user_data: TUserData,
},
GetRecordRes {
record: Option<Record>,
closer_peers: Vec<KadPeer>,
request_id: KademliaRequestId,
},
PutRecord {
record: Record,
user_data: TUserData,
},
PutRecordRes {
key: Key,
value: Vec<u8>,
request_id: KademliaRequestId,
},
}Event to send to the handler.
Variants
Reset(KademliaRequestId)Resets the (sub)stream associated with the given request ID, thus signaling an error to the remote.
Explicitly resetting the (sub)stream associated with a request can be used as an alternative to letting requests simply time out on the remote peer, thus potentially avoiding some delay for the query on the remote.
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.
Show fields
Response to a FindNodeReq.
Show fields
Fields of FindNodeRes
closer_peers: Vec<KadPeer>Results of the request.
request_id: KademliaRequestIdIdentifier of the request that was made by the remote.
It is a logic error to use an id of the handler of a different node.
Same as FindNodeReq, but should also return the entries of the local providers list for
this key.
Show fields
Fields of GetProvidersReq
key: KeyIdentifier being searched.
user_data: TUserDataCustom user data. Passed back in the out event when the results arrive.
Response to a GetProvidersReq.
Show fields
Fields of GetProvidersRes
closer_peers: Vec<KadPeer>Nodes closest to the key.
provider_peers: Vec<KadPeer>Known providers for this key.
request_id: KademliaRequestIdIdentifier of the request that was made by the remote.
It is a logic error to use an id of the handler of a different node.
Indicates that this provider is known for this key.
The API of the handler doesn’t expose any event that allows you to know whether this succeeded.
Show fields
Request to retrieve a record from the DHT.
Show fields
Fields of GetRecord
key: KeyThe key of the record.
user_data: TUserDataCustom data. Passed back in the out event when the results arrive.
Response to a GetRecord request.
Show fields
Fields of GetRecordRes
record: Option<Record>The value that might have been found in our storage.
closer_peers: Vec<KadPeer>Nodes that are closer to the key we were searching for.
request_id: KademliaRequestIdIdentifier of the request that was made by the remote.
Put a value into the dht records.
Show fields
Fields of PutRecord
record: Recorduser_data: TUserDataCustom data. Passed back in the out event when the results arrive.
Response to a PutRecord.
Show fields
Fields of PutRecordRes
key: KeyKey of the value that was put.
value: Vec<u8>Value that was put.
request_id: KademliaRequestIdIdentifier of the request that was made by the remote.
Trait Implementations
Auto Trait Implementations
impl<TUserData> RefUnwindSafe for KademliaHandlerIn<TUserData> where
TUserData: RefUnwindSafe,
TUserData: RefUnwindSafe,
impl<TUserData> Send for KademliaHandlerIn<TUserData> where
TUserData: Send,
TUserData: Send,
impl<TUserData> Sync for KademliaHandlerIn<TUserData> where
TUserData: Sync,
TUserData: Sync,
impl<TUserData> Unpin for KademliaHandlerIn<TUserData> where
TUserData: Unpin,
TUserData: Unpin,
impl<TUserData> UnwindSafe for KademliaHandlerIn<TUserData> where
TUserData: UnwindSafe,
TUserData: UnwindSafe,