pub struct RemainingBudget {
pub deadline: Option<Duration>,
pub polls: Option<u32>,
pub cost: Option<u64>,
}Expand description
A point-in-time snapshot of the remaining headroom in a Budget.
Produced by Budget::remaining. Every dimension uses None to mean
“effectively unlimited” (no deadline configured, u32::MAX poll quota, or
no cost quota), so callers never need to know the sentinel encodings.
The canonical use is adaptive control flow such as “do I have time for another retry?”:
let left = budget.remaining(now);
let can_retry = left.deadline.is_none_or(|d| d > estimated_attempt);Fields§
§deadline: Option<Duration>Time left until the deadline, or None if no deadline is set or the
deadline has already passed with no remaining time (see
Budget::remaining_time for the exact past-deadline semantics).
polls: Option<u32>Polls left, or None if effectively unlimited.
cost: Option<u64>Cost units left, or None if no cost quota is configured.
Trait Implementations§
Source§impl Clone for RemainingBudget
impl Clone for RemainingBudget
Source§fn clone(&self) -> RemainingBudget
fn clone(&self) -> RemainingBudget
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for RemainingBudget
Source§impl Debug for RemainingBudget
impl Debug for RemainingBudget
impl Eq for RemainingBudget
Source§impl PartialEq for RemainingBudget
impl PartialEq for RemainingBudget
impl StructuralPartialEq for RemainingBudget
Auto Trait Implementations§
impl Freeze for RemainingBudget
impl RefUnwindSafe for RemainingBudget
impl Send for RemainingBudget
impl Sync for RemainingBudget
impl Unpin for RemainingBudget
impl UnsafeUnpin for RemainingBudget
impl UnwindSafe for RemainingBudget
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, _span: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).