Struct golem_rust::FallibleTransaction
source · pub struct FallibleTransaction<Err> { /* private fields */ }
Expand description
FallibleTransaction is a sequence of operations that are executed in a way that if any of the operations fails all the already performed operation’s compensation actions got executed in reverse order.
In case of fatal errors (panic) and external executor failures it does not perform the compensation actions and the whole transaction gets retried.
Implementations§
Trait Implementations§
source§impl<Err: Clone + 'static> Transaction<Err> for FallibleTransaction<Err>
impl<Err: Clone + 'static> Transaction<Err> for FallibleTransaction<Err>
fn execute<OpIn: Clone + 'static, OpOut: Clone + 'static>( &mut self, operation: impl Operation<In = OpIn, Out = OpOut, Err = Err> + 'static, input: OpIn, ) -> Result<OpOut, Err>
fn fail(&mut self, error: Err) -> Result<(), Err>
fn run<Out>( f: impl FnOnce(&mut Self) -> Result<Out, Err>, ) -> TransactionResult<Out, Err>
Auto Trait Implementations§
impl<Err> Freeze for FallibleTransaction<Err>
impl<Err> !RefUnwindSafe for FallibleTransaction<Err>
impl<Err> !Send for FallibleTransaction<Err>
impl<Err> !Sync for FallibleTransaction<Err>
impl<Err> Unpin for FallibleTransaction<Err>
impl<Err> !UnwindSafe for FallibleTransaction<Err>
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
Mutably borrows from an owned value. Read more