pub enum KademliaHandlerIn<TUserData> {
Reset(KademliaRequestId),
FindNodeReq {
key: Vec<u8, Global>,
user_data: TUserData,
},
FindNodeRes {
closer_peers: Vec<KadPeer, Global>,
request_id: KademliaRequestId,
},
GetProvidersReq {
key: Key,
user_data: TUserData,
},
GetProvidersRes {
closer_peers: Vec<KadPeer, Global>,
provider_peers: Vec<KadPeer, Global>,
request_id: KademliaRequestId,
},
AddProvider {
key: Key,
provider: KadPeer,
},
GetRecord {
key: Key,
user_data: TUserData,
},
GetRecordRes {
record: Option<Record>,
closer_peers: Vec<KadPeer, Global>,
request_id: KademliaRequestId,
},
PutRecord {
record: Record,
user_data: TUserData,
},
PutRecordRes {
key: Key,
value: Vec<u8, Global>,
request_id: KademliaRequestId,
},
}
Expand description
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.
FindNodeReq
Fields
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
request_id: KademliaRequestId
Identifier 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.
Response to a FindNodeReq
.
GetProvidersReq
Fields
key: Key
Identifier being searched.
Same as FindNodeReq
, but should also return the entries of the local providers list for
this key.
GetProvidersRes
Fields
request_id: KademliaRequestId
Identifier 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.
Response to a GetProvidersReq
.
AddProvider
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.
GetRecord
Fields
key: Key
The key of the record.
Request to retrieve a record from the DHT.
GetRecordRes
Fields
request_id: KademliaRequestId
Identifier of the request that was made by the remote.
Response to a GetRecord
request.
PutRecord
Fields
record: Record
Put a value into the dht records.
PutRecordRes
Fields
key: Key
Key of the value that was put.
request_id: KademliaRequestId
Identifier of the request that was made by the remote.
Response to a PutRecord
.
Trait Implementations
Auto Trait Implementations
impl<TUserData> RefUnwindSafe for KademliaHandlerIn<TUserData> where
TUserData: RefUnwindSafe,
impl<TUserData> Send for KademliaHandlerIn<TUserData> where
TUserData: Send,
impl<TUserData> Sync for KademliaHandlerIn<TUserData> where
TUserData: Sync,
impl<TUserData> Unpin for KademliaHandlerIn<TUserData> where
TUserData: Unpin,
impl<TUserData> UnwindSafe for KademliaHandlerIn<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