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

pub enum KademliaHandlerEvent<TUserData> {
    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,
    },
}

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: Vec<u8>

The key for which to locate the closest nodes.

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

The key for which providers are requested.

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 peer announced itself as a provider of a key.

Fields of AddProvider

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.

GetRecord

Request to get a value from the dht records

Fields of GetRecord

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.

GetRecordRes

Response to a KademliaHandlerIn::GetRecord.

Fields of GetRecordRes

record: Option<Record>

The result is present if the key has been found

closer_peers: Vec<KadPeer>

Nodes closest to the key.

user_data: TUserData

The user data passed to the GetValue.

PutRecord

Request to put a value in the dht records

Fields of PutRecord

record: Recordrequest_id: KademliaRequestId

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

PutRecordRes

Response to a request to store a record.

Fields of PutRecordRes

key: Key

The key of the stored record.

value: Vec<u8>

The value of the stored record.

user_data: TUserData

The user data passed to the PutValue.

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

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

impl<TUserData> !UnwindSafe for KademliaHandlerEvent<TUserData>

impl<TUserData> !RefUnwindSafe for KademliaHandlerEvent<TUserData>

Blanket Implementations

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

impl<T> From<T> for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> 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> Borrow<T> for T where
    T: ?Sized
[src]

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

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

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,