pub enum AtomicRunOutcome {
Committed {
post_commit: CommittedPostCommitEffects,
},
RolledBack {
failed_op_index: usize,
failure: AtomicOpFailure,
},
}Expand description
The whole-unit outcome of a completed run_atomic_unit call — the
commit pass ran to a clean, distinguishable verdict (never returned for
a seam-level failure; see AtomicRunnerError for that case).
Variants§
Committed
Every op’s plan applied and the unit committed. Carries an opaque
CommittedPostCommitEffects token containing the deferred effects
in op order. Phase 3 consumes that token through
crate::atomic_prepare::apply_post_commit_effects after
run_atomic_unit returns and outside any transaction; callers can
inspect the effects without converting them back into an executable
raw collection.
Fields
post_commit: CommittedPostCommitEffectsRolledBack
The op at failed_op_index failed; the whole unit rolled back
(ADR-099 D1: “the whole unit rolls back and the failing op index is
recorded”). No op’s writes are present in the database after this
outcome — including any earlier op whose own SAVEPOINT had already
been RELEASEd, because RELEASE only merges a savepoint’s changes
into its parent transaction; it does not commit them independently
of the outer atomic_unit transaction’s own COMMIT/ROLLBACK.
Trait Implementations§
Source§impl Debug for AtomicRunOutcome
impl Debug for AtomicRunOutcome
impl Eq for AtomicRunOutcome
Source§impl PartialEq for AtomicRunOutcome
impl PartialEq for AtomicRunOutcome
impl StructuralPartialEq for AtomicRunOutcome
Auto Trait Implementations§
impl Freeze for AtomicRunOutcome
impl RefUnwindSafe for AtomicRunOutcome
impl Send for AtomicRunOutcome
impl Sync for AtomicRunOutcome
impl Unpin for AtomicRunOutcome
impl UnsafeUnpin for AtomicRunOutcome
impl UnwindSafe for AtomicRunOutcome
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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