pub enum FailureCause<V>where
V: Identities,{
Commit {
target: IoTargetKey,
fault: IoFault,
},
Imported {
scope: ImportScope<V>,
},
Provider {
domain: FlushDomain,
error: Arc<Error>,
},
ProviderAbandoned {
domain: FlushDomain,
},
}Expand description
Why a failure exists, citing where it came from (DI-D-47, DI-D-50). A failed write is never a cause (DI-D-12 (a)). The lineages a failure belongs to are those of the writes in its suspect set.
Commit is relayed from the target’s backend, as an IoFault naming its source; the rest
are relayed by the consumer or its provider, or observed by dioring, and say so.
Variants§
Commit
The built-in default provider’s commit of target failed, as the target’s backend
reported it.
Fields
target: IoTargetKeyThe target whose commit failed.
Imported
The consumer imported a failure it learned of outside the instance: relayed by the consumer, with no code of dioring’s.
Fields
scope: ImportScope<V>Where the consumer said it lands.
Provider
The consumer’s provider reported domain failed (DI-D-27): relayed by the provider.
Fields
domain: FlushDomainThe domain the provider failed.
ProviderAbandoned
The consumer’s provider dropped domain’s completion without answering (DI-D-27): dioring
observed the silence, so there is no error to report.
Fields
domain: FlushDomainThe domain left unanswered.
Trait Implementations§
Source§impl<V> Clone for FailureCause<V>where
V: Clone + Identities,
impl<V> Clone for FailureCause<V>where
V: Clone + Identities,
Source§fn clone(&self) -> FailureCause<V>
fn clone(&self) -> FailureCause<V>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more