Struct mz_persist::retry::RetryStream
source · pub struct RetryStream {
cfg: Retry,
rng: SmallRng,
attempt: usize,
backoff: Option<Duration>,
}
Expand description
A series of exponential, jittered, clamped sleeps.
Fields§
§cfg: Retry
§rng: SmallRng
§attempt: usize
§backoff: Option<Duration>
Implementations§
source§impl RetryStream
impl RetryStream
sourcepub fn attempt(&self) -> usize
pub fn attempt(&self) -> usize
How many times Self::sleep has been called.
sourcepub fn next_sleep(&self) -> Duration
pub fn next_sleep(&self) -> Duration
The next sleep (without jitter for easy printing in logs).
sourcepub async fn sleep(self) -> Self
pub async fn sleep(self) -> Self
Executes the next sleep in the series.
This isn’t cancel-safe, so it consumes and returns self, to prevent accidental mis-use.
fn advance(self) -> Self
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RetryStream
impl RefUnwindSafe for RetryStream
impl Send for RetryStream
impl Sync for RetryStream
impl Unpin for RetryStream
impl UnwindSafe for RetryStream
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> 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> 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::Request
Creates a shared type from an unshared type.
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
The method of
std::ops::AddAssign
, for types that do not implement AddAssign
.