pub enum EffectFinality {
NotAttempted,
Initiated,
Finalized,
Failed,
Indeterminate,
}Expand description
How far a state change actually got. Orthogonal to EffectConfidence,
which grades the evidence: an effect can be Finalized with weak evidence,
or Initiated with excellent evidence that it is still pending.
Collapsing the two is a real production failure, not a theoretical one. A
receipt that reports a single success: true can be accurate in every field
and false as a composite: the write was accepted, acknowledged, assigned an
id, and served back on read – and never committed. Every predicate held;
“done” did not. Separating the axes is what makes that claim expressible,
and the verify_effect cap on Finalized is what makes it checkable.
Variants§
NotAttempted
Authority was exercised but no state change was attempted – a timeout or refusal before the call went out. This is the “no authority moved” receipt: an explicit signed negative, so absence stops being indistinguishable from a check that was never required.
Initiated
The target accepted the change but has not confirmed it as final. Unresolved: an acknowledgement is not a commit.
Finalized
The target confirmed the change is final.
Failed
Attempted, and definitively did not take effect.
Indeterminate
Attempted; whether it took effect could not be established. Distinct
from Initiated, where the target at least said yes-but-not-yet. Here
nobody knows, which is a state to escalate from, not to retry blindly.
Implementations§
Source§impl EffectFinality
impl EffectFinality
Sourcepub fn is_resolved(self) -> bool
pub fn is_resolved(self) -> bool
Whether the lifecycle reached a terminal state. Initiated and
Indeterminate are open: something is still owed. Only open effects can
breach a resolution deadline.
Trait Implementations§
Source§impl Clone for EffectFinality
impl Clone for EffectFinality
Source§fn clone(&self) -> EffectFinality
fn clone(&self) -> EffectFinality
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for EffectFinality
Source§impl Debug for EffectFinality
impl Debug for EffectFinality
Source§impl<'de> Deserialize<'de> for EffectFinality
impl<'de> Deserialize<'de> for EffectFinality
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for EffectFinality
Source§impl PartialEq for EffectFinality
impl PartialEq for EffectFinality
Source§impl Serialize for EffectFinality
impl Serialize for EffectFinality
impl StructuralPartialEq for EffectFinality
Auto Trait Implementations§
impl Freeze for EffectFinality
impl RefUnwindSafe for EffectFinality
impl Send for EffectFinality
impl Sync for EffectFinality
impl Unpin for EffectFinality
impl UnsafeUnpin for EffectFinality
impl UnwindSafe for EffectFinality
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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.