#[non_exhaustive]pub enum NotReadyCause {
WaitBudgetExhausted,
WaitInterrupted,
SourcePending,
}Expand description
Concrete cause for a PendingReason::NotReady.
Carried as the typed payload of NotReady so the io::Error that
impl Read for Stream produces names the real stall site without
requiring decoder-side instrumentation.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
WaitBudgetExhausted
wait_range returned WaitBudgetExceeded for MAX_WAIT_SPINS
iterations — the source kept signalling “not yet” past the read
budget. Typical when a fetch is slower than the read deadline.
WaitInterrupted
wait_range returned Interrupted without an active flush, also
past the spin budget — the downloader woke us but range still
wasn’t satisfied. Typical sign of a flapping ABR/eviction race.
SourcePending
wait_range reported ready but read_at then returned Pending
with a non-Retry reason — surfaced verbatim from the source.
Trait Implementations§
Source§impl Clone for NotReadyCause
impl Clone for NotReadyCause
Source§fn clone(&self) -> NotReadyCause
fn clone(&self) -> NotReadyCause
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 moreSource§impl Debug for NotReadyCause
impl Debug for NotReadyCause
Source§impl Display for NotReadyCause
impl Display for NotReadyCause
Source§impl PartialEq for NotReadyCause
impl PartialEq for NotReadyCause
Source§fn eq(&self, other: &NotReadyCause) -> bool
fn eq(&self, other: &NotReadyCause) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for NotReadyCause
impl Eq for NotReadyCause
impl StructuralPartialEq for NotReadyCause
Auto Trait Implementations§
impl Freeze for NotReadyCause
impl RefUnwindSafe for NotReadyCause
impl Send for NotReadyCause
impl Sync for NotReadyCause
impl Unpin for NotReadyCause
impl UnsafeUnpin for NotReadyCause
impl UnwindSafe for NotReadyCause
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