Enum libp2p_kad::QueryInfo[][src]

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,
        provider_key: PublicKey,
        certificates: Vec<Certificate>,
    },
    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

A query initiated by Kademlia::bootstrap.

Show fields

Fields of Bootstrap

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.

GetClosestPeers

A query initiated by Kademlia::get_closest_peers.

Show fields

Fields of GetClosestPeers

key: Vec<u8>
GetProviders

A query initiated by Kademlia::get_providers.

Show fields

Fields of GetProviders

key: Key

The key for which to search for providers.

providers: HashSet<PeerId>

The found providers.

AddProvider

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

Show fields

Fields of AddProvider

key: Key

The record key.

phase: AddProviderPhase

The current phase of the query.

context: AddProviderContext

The execution context of the query.

provider_key: PublicKey

Public key of the provider

certificates: Vec<Certificate>

Certificates known for the provider

PutRecord

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

Show fields

Fields of PutRecord

record: Recordquorum: 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.

GetRecord

A query initiated by Kademlia::get_record.

Show fields

Fields of GetRecord

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.

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

Performs the conversion.

Performs the conversion.

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)

recently added

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.