KademliaEvent

Enum KademliaEvent 

Source
pub enum KademliaEvent {
    FindNodeSuccess {
        query_id: QueryId,
        target: PeerId,
        peers: Vec<(PeerId, Vec<Multiaddr>)>,
    },
    RoutingTableUpdate {
        peers: Vec<PeerId>,
    },
    GetRecordSuccess {
        query_id: QueryId,
    },
    GetRecordPartialResult {
        query_id: QueryId,
        record: PeerRecord,
    },
    GetProvidersSuccess {
        query_id: QueryId,
        provided_key: RecordKey,
        providers: Vec<ContentProvider>,
    },
    PutRecordSuccess {
        query_id: QueryId,
        key: RecordKey,
    },
    AddProviderSuccess {
        query_id: QueryId,
        provided_key: RecordKey,
    },
    QueryFailed {
        query_id: QueryId,
    },
    IncomingRecord {
        record: Record,
    },
    IncomingProvider {
        provided_key: RecordKey,
        provider: ContentProvider,
    },
}
Expand description

Kademlia events.

Variants§

§

FindNodeSuccess

Result for the issued FIND_NODE query.

Fields

§query_id: QueryId

Query ID.

§target: PeerId

Target of the query

§peers: Vec<(PeerId, Vec<Multiaddr>)>

Found nodes and their addresses.

§

RoutingTableUpdate

Routing table update.

Kademlia has discovered one or more peers that should be added to the routing table. If RoutingTableUpdateMode is Automatic, user can ignore this event unless some upper-level protocols has user for this information.

If the mode was set to Manual, user should call KademliaHandle::add_known_peer() in order to add the peers to routing table.

Fields

§peers: Vec<PeerId>

Discovered peers.

§

GetRecordSuccess

GET_VALUE query succeeded.

Fields

§query_id: QueryId

Query ID.

§

GetRecordPartialResult

GET_VALUE inflight query produced a result.

This event is emitted when a peer responds to the query with a record.

Fields

§query_id: QueryId

Query ID.

§record: PeerRecord

Found record.

§

GetProvidersSuccess

GET_PROVIDERS query succeeded.

Fields

§query_id: QueryId

Query ID.

§provided_key: RecordKey

Provided key.

§providers: Vec<ContentProvider>

Found providers with cached addresses. Returned providers are sorted by distane to the provided key.

§

PutRecordSuccess

PUT_VALUE query succeeded.

Fields

§query_id: QueryId

Query ID.

§key: RecordKey

Record key.

§

AddProviderSuccess

ADD_PROVIDER query succeeded.

Fields

§query_id: QueryId

Query ID.

§provided_key: RecordKey

Provided key.

§

QueryFailed

Query failed.

Fields

§query_id: QueryId

Query ID.

§

IncomingRecord

Incoming PUT_VALUE request received.

In case of using IncomingRecordValidationMode::Manual and successful validation the record must be manually inserted into the local DHT store with KademliaHandle::store_record().

Fields

§record: Record

Record.

§

IncomingProvider

Incoming ADD_PROVIDER request received.

Fields

§provided_key: RecordKey

Provided key.

§provider: ContentProvider

Provider.

Trait Implementations§

Source§

impl Clone for KademliaEvent

Source§

fn clone(&self) -> KademliaEvent

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for KademliaEvent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more