pub struct ProbedProvider {
pub node_id: NodeId,
pub rate_per_mb: u64,
pub rtt_ms: u32,
pub coverage: Coverage,
pub total_bytes_hint: Option<u64>,
}Expand description
One probed provider — ADR 001 §Probe cache’s entry triple
(hash → Vec<(NodeId, rate_per_mb, rtt)>) plus the probe’s unsigned
range-keyed Coverage (#1506), and nothing more.
Fields§
§node_id: NodeIdThe provider that answered has_blob: true.
rate_per_mb: u64Its quoted ProbeResponse::rate_per_mb.
rtt_ms: u32The round-trip latency observed on that probe.
coverage: CoverageThe discovery blocks the provider reported holding on that probe
(ProbeResponseExt.coverage, #1506). UNSIGNED — outside the slash_sig
set — so retaining it is not the evidence retention the module doc
forbids; it carries no slashable author. A cache-hit candidate is
range-planned against this ≤15s-fresh value rather than reading as
covering nothing.
total_bytes_hint: Option<u64>The blob size the provider reported on that probe
(ProbeResponseExt.total_bytes), when it knew it. UNSIGNED, like
coverage, so it carries no slashable author either: a sizing hint the
pull leg cuts its first upstream open from.
Trait Implementations§
Source§impl Clone for ProbedProvider
impl Clone for ProbedProvider
Source§impl Debug for ProbedProvider
impl Debug for ProbedProvider
impl Eq for ProbedProvider
Source§impl PartialEq for ProbedProvider
impl PartialEq for ProbedProvider
impl StructuralPartialEq for ProbedProvider
Auto Trait Implementations§
impl Freeze for ProbedProvider
impl RefUnwindSafe for ProbedProvider
impl Send for ProbedProvider
impl Sync for ProbedProvider
impl Unpin for ProbedProvider
impl UnsafeUnpin for ProbedProvider
impl UnwindSafe for ProbedProvider
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request