[][src]Enum libp2p_kad::handler::KademliaHandlerEvent

pub enum KademliaHandlerEvent<TUserData> {
    FindNodeReq {
        key: PeerId,
        request_id: KademliaRequestId,
    },
    FindNodeRes {
        closer_peers: Vec<KadPeer>,
        user_data: TUserData,
    },
    GetProvidersReq {
        key: Multihash,
        request_id: KademliaRequestId,
    },
    GetProvidersRes {
        closer_peers: Vec<KadPeer>,
        provider_peers: Vec<KadPeer>,
        user_data: TUserData,
    },
    QueryError {
        error: KademliaHandlerQueryErr,
        user_data: TUserData,
    },
    AddProvider {
        key: Multihash,
        provider_peer: KadPeer,
    },
}

Event produced by the Kademlia handler.

Variants

FindNodeReq

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.

Fields of FindNodeReq

key: PeerId

Identifier of the node.

request_id: KademliaRequestId

Identifier of the request. Needs to be passed back when answering.

FindNodeRes

Response to an KademliaHandlerIn::FindNodeReq.

Fields of FindNodeRes

closer_peers: Vec<KadPeer>

Results of the request.

user_data: TUserData

The user data passed to the FindNodeReq.

GetProvidersReq

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

Fields of GetProvidersReq

key: Multihash

Identifier being searched.

request_id: KademliaRequestId

Identifier of the request. Needs to be passed back when answering.

GetProvidersRes

Response to an KademliaHandlerIn::GetProvidersReq.

Fields of GetProvidersRes

closer_peers: Vec<KadPeer>

Nodes closest to the key.

provider_peers: Vec<KadPeer>

Known providers for this key.

user_data: TUserData

The user data passed to the GetProvidersReq.

QueryError

An error happened when performing a query.

Fields of QueryError

error: KademliaHandlerQueryErr

The error that happened.

user_data: TUserData

The user data passed to the query.

AddProvider

The remote indicates that this list of providers is known for this key.

Fields of AddProvider

key: Multihash

Key for which we should add providers.

provider_peer: KadPeer

Known provider for this key.

Trait Implementations

impl<TUserData: Debug> Debug for KademliaHandlerEvent<TUserData>[src]

Auto Trait Implementations

impl<TUserData> Send for KademliaHandlerEvent<TUserData> where
    TUserData: Send

impl<TUserData> Sync for KademliaHandlerEvent<TUserData> where
    TUserData: Sync

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Same for T

type Output = T

Should always be Self

impl<T> Erased for T