pub enum PushRefusal<V>where
V: Identities,{
Sealed {
epoch: Epoch<V>,
sealed_through: <V as Identities>::EpochId,
},
EpochAbandoned {
epoch: Epoch<V>,
},
UnknownLineage(<V as Identities>::Lineage),
GateAbandoned {
gate: Epoch<V>,
},
GateCycle {
cycle: Vec<Epoch<V>>,
},
UnknownFile(IoTargetKey),
Backend(RefusalCause),
}Expand description
Why a push was refused before anything was reserved.
Variants§
Sealed
The write’s epoch is at or below its lineage’s seal point (DI-D-9 rule a).
Fields
sealed_through: <V as Identities>::EpochIdIts lineage’s seal point.
EpochAbandoned
The write’s epoch was abandoned (DI-D-35): its writes were declared lost, so none may join
it, sealed or open. An epoch at or below the seal point is refused as Sealed instead.
UnknownLineage(<V as Identities>::Lineage)
The write’s lineage, or the gate’s, is not one the instance can answer for: another instance’s, or one ended or retired (DI-D-40, DI-D-43).
GateAbandoned
The gate names an epoch already abandoned, so the operation could never be released.
GateCycle
The gate would close a cycle: its lineage reaching it already needs, transitively, this write to complete (DI-D-23).
Fields
cycle: Vec<Epoch<V>>The cycle, as SealError::GateCycle lists one, starting at this write’s epoch and
its gate.
UnknownFile(IoTargetKey)
No target was given to the instance under this key.
Backend(RefusalCause)
The backend refused the push, naming why, so the caller can act on it (DI-D-52): among
others, a registered-span operation on an instance built without registered buffers
(RefusalCause::Unsupported), or a span the registration does not contain
(RefusalCause::Invalid).