#[non_exhaustive]pub enum PendingReason {
SeekPending,
NotReady(NotReadyCause),
VariantChange,
Retry,
}Expand description
Reason a ReadOutcome::Pending was returned — i.e. why the source
did not make progress this call. Each variant maps to a distinct
caller action; there is no overlap and no string-matching required.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
SeekPending
A seek is pending (consumer flagged the timeline). The caller must abort the current read and let the seek apply — do not retry from the same byte offset.
NotReady(NotReadyCause)
Data is not yet available at the requested range. Transient —
caller may retry after backoff. The inner NotReadyCause tells
which point in the read pipeline failed to make progress (wait
budget exhausted, wait interrupted, source-side pending).
VariantChange
Source crossed a variant boundary at this offset. Caller must
recreate the decoder and call
Source::clear_variant_fence before reads succeed. Zero bytes
were touched — the fence fires BEFORE any data is read.
Retry
Resource was evicted between Source::wait_range (metadata
ready) and Source::read_at (actual I/O). Caller should
retry from wait_range, not from the same byte offset.
Trait Implementations§
Source§impl Clone for PendingReason
impl Clone for PendingReason
Source§fn clone(&self) -> PendingReason
fn clone(&self) -> PendingReason
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PendingReason
impl Debug for PendingReason
Source§impl Display for PendingReason
impl Display for PendingReason
Source§impl Error for PendingReason
impl Error for PendingReason
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl PartialEq for PendingReason
impl PartialEq for PendingReason
Source§fn eq(&self, other: &PendingReason) -> bool
fn eq(&self, other: &PendingReason) -> bool
self and other values to be equal, and is used by ==.