pub struct HostEffectFailure {
pub kind: HostEffectFailureKind,
pub message: String,
pub retryable: Option<bool>,
}Expand description
What the host can say about a failure. No wall clock, no host path, no stack, no raw vendor error — only facts the kernel can act on and replay. Vendor diagnostics belong in the host’s own log, never in a kernel recovery decision.
Fields§
§kind: HostEffectFailureKind§message: String§retryable: Option<bool>Host advice, never an instruction, and uniformly inert across all six failure kinds.
DEC-5 is what makes that stronger than a naming convention: the kernel makes exactly one
policy decision per failure and never re-emits the same intent, so there is no branch for
this flag to select. The decision is chosen by the effect kind the kernel itself
published — never by the kind the host reports and never by this field — which is why
retryable: true, retryable: false and an absent retryable must plan byte-identical
steps for every one of the ten effect kinds.
A host that wants another attempt asks again with a new causation and keeps its own
idempotency on the effect id / launch token. Retry ladders that a vendor would call
rate-limit or unavailable back-off run entirely inside the host and never reach the
kernel; when one is spent, the failure that arrives is HostEffectFailureKind::TransportExhausted
and nothing else.
Trait Implementations§
Source§impl Clone for HostEffectFailure
impl Clone for HostEffectFailure
Source§fn clone(&self) -> HostEffectFailure
fn clone(&self) -> HostEffectFailure
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more