pub enum KademliaHandlerIn<TUserData> {
    FindNodeReq {
        key: PeerId,
        user_data: TUserData,
    },
    FindNodeRes {
        closer_peers: Vec<KadPeer>,
        request_id: KademliaRequestId,
    },
    GetProvidersReq {
        key: Multihash,
        user_data: TUserData,
    },
    GetProvidersRes {
        closer_peers: Vec<KadPeer>,
        provider_peers: Vec<KadPeer>,
        request_id: KademliaRequestId,
    },
    AddProvider {
        key: Multihash,
        provider_peer: KadPeer,
    },
}
Expand description

Event to send to the handler.

Variants

FindNodeReq

Fields

key: PeerId

Identifier of the node.

user_data: TUserData

Custom user data. Passed back in the out event when the results arrive.

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

closer_peers: Vec<KadPeer>

Results of the request.

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: Multihash

Identifier being searched.

user_data: TUserData

Custom user data. Passed back in the out event when the results arrive.

Same as FindNodeReq, but should also return the entries of the local providers list for this key.

GetProvidersRes

Fields

closer_peers: Vec<KadPeer>

Nodes closest to the key.

provider_peers: Vec<KadPeer>

Known providers for this key.

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

Fields

key: Multihash

Key for which we should add providers.

provider_peer: KadPeer

Known provider for this key.

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.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.