pub enum QueryInfo {
    Bootstrap {
        peer: PeerId,
        remaining: Option<IntoIter<Key<PeerId>>>,
    },
    GetClosestPeers {
        key: Vec<u8>,
    },
    GetProviders {
        key: Key,
        providers: HashSet<PeerId>,
    },
    AddProvider {
        key: Key,
        phase: AddProviderPhase,
        context: AddProviderContext,
    },
    PutRecord {
        record: Record,
        quorum: NonZeroUsize,
        phase: PutRecordPhase,
        context: PutRecordContext,
    },
    GetRecord {
        key: Key,
        records: Vec<PeerRecord>,
        quorum: NonZeroUsize,
        cache_at: Option<Key<PeerId>>,
    },
}
Expand description

Information about a running query.

Variants

Bootstrap

Fields

peer: PeerId

The targeted peer ID.

remaining: Option<IntoIter<Key<PeerId>>>

The remaining random peer IDs to query, one per bucket that still needs refreshing.

This is None if the initial self-lookup has not yet completed and Some with an exhausted iterator if bootstrapping is complete.

A query initiated by Kademlia::bootstrap.

GetClosestPeers

Fields

key: Vec<u8>

A query initiated by Kademlia::get_closest_peers.

GetProviders

Fields

key: Key

The key for which to search for providers.

providers: HashSet<PeerId>

The found providers.

A query initiated by Kademlia::get_providers.

AddProvider

Fields

key: Key

The record key.

phase: AddProviderPhase

The current phase of the query.

context: AddProviderContext

The execution context of the query.

A (repeated) query initiated by Kademlia::start_providing.

PutRecord

Fields

record: Record
quorum: NonZeroUsize

The expected quorum of responses w.r.t. the replication factor.

phase: PutRecordPhase

The current phase of the query.

context: PutRecordContext

The execution context of the query.

A (repeated) query initiated by Kademlia::put_record.

GetRecord

Fields

key: Key

The key to look for.

records: Vec<PeerRecord>

The records with the id of the peer that returned them. None when the record was found in the local store.

quorum: NonZeroUsize

The number of records to look for.

cache_at: Option<Key<PeerId>>

The closest peer to key that did not return a record.

When a record is found in a standard Kademlia query (quorum == 1), it is cached at this peer as soon as a record is found.

A query initiated by Kademlia::get_record.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

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 resulting type after obtaining ownership.

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

🔬 This is a nightly-only experimental API. (toowned_clone_into)

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

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.