pub enum OriginPresence {
Present(u64),
Absent,
Fault,
}Expand description
A live origin-existence answer (#1766), distinguishing a genuine negative
from a backend fault. It is the target of the two-way collapse in
crate::origin_probe::Presence: Present/Absent map straight across,
and Fault is folded into “don’t advertise” — see
CacheEngine::origin_probe_size.
Variants§
Present(u64)
A configured origin holds the blob; carries the total byte size.
Absent
No configured origin holds the blob: a genuine HEAD/HeadObject
404, or no origin is configured at all (CacheError::NoOrigin — a
node with nothing configured genuinely holds nothing; that is not a
transient condition).
Fault
The probe could not get an authoritative answer: a transport error, or
the live HEAD overran cache.origin_probe_timeout_ms. Distinct from
Absent on purpose — a caller that would otherwise sign an
authoritative NotFound must not do so on a fault; see the
origin-only serve gate (dispatch.rs).
Trait Implementations§
Source§impl Clone for OriginPresence
impl Clone for OriginPresence
impl Copy for OriginPresence
Source§impl Debug for OriginPresence
impl Debug for OriginPresence
impl Eq for OriginPresence
Source§impl From<Presence> for OriginPresence
impl From<Presence> for OriginPresence
Source§impl PartialEq for OriginPresence
impl PartialEq for OriginPresence
impl StructuralPartialEq for OriginPresence
Auto Trait Implementations§
impl Freeze for OriginPresence
impl RefUnwindSafe for OriginPresence
impl Send for OriginPresence
impl Sync for OriginPresence
impl Unpin for OriginPresence
impl UnsafeUnpin for OriginPresence
impl UnwindSafe for OriginPresence
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
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§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
key and return true if they are equal.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> ⓘ
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> ⓘ
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 more