pub struct LookupConfig {
pub alpha: NonZeroUsize,
pub k: NonZeroUsize,
pub round_timeout: Duration,
}Expand description
Lookup tuning knobs. alpha and k are NonZeroUsize so the
type system rules out the silent-no-op states a zero would
produce — empty batches from pick_round_batch, instant
“saturation” from have_enough_providers. Caller-side clamping
belongs at the config-parse boundary, not at every lookup entry.
Fields§
§alpha: NonZeroUsizeParallel in-flight RPCs per round.
k: NonZeroUsizeStop after this many providers accumulated.
round_timeout: DurationPer-round timeout — applied around the JoinSet drain so a
slow / hanging peer doesn’t wedge the iteration.
Trait Implementations§
Source§impl Clone for LookupConfig
impl Clone for LookupConfig
impl Copy for LookupConfig
Source§impl Debug for LookupConfig
impl Debug for LookupConfig
Auto Trait Implementations§
impl Freeze for LookupConfig
impl RefUnwindSafe for LookupConfig
impl Send for LookupConfig
impl Sync for LookupConfig
impl Unpin for LookupConfig
impl UnsafeUnpin for LookupConfig
impl UnwindSafe for LookupConfig
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> ⓘ
Converts
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> ⓘ
Converts
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>
Wrap the input message
T in a tonic::RequestCreates a shared type from an unshared type.