Skip to main content

ExecutorReadyBuilder

Struct ExecutorReadyBuilder 

Source
pub struct ExecutorReadyBuilder<L, T> { /* private fields */ }
Expand description

Builder state after the required condition tester has been configured.

This state can configure prepare lifecycle callbacks and build the final DoubleCheckedLockExecutor.

§Type Parameters

  • L - The lock type implementing Lock<T>.
  • T - The data type protected by the lock.

Implementations§

Source§

impl<L, T> ExecutorReadyBuilder<L, T>
where L: Lock<T>,

Source

pub fn log_unmet_condition( self, level: Level, message: impl Into<String>, ) -> Self

Configures logging when the double-checked condition is not met.

Source

pub fn disable_unmet_condition_logging(self) -> Self

Disables logging when the double-checked condition is not met.

Source

pub fn log_prepare_failure( self, level: Level, message_prefix: impl Into<String>, ) -> Self

Configures logging when the prepare action fails.

Source

pub fn disable_prepare_failure_logging(self) -> Self

Disables logging when the prepare action fails.

Source

pub fn log_prepare_commit_failure( self, level: Level, message_prefix: impl Into<String>, ) -> Self

Configures logging when the prepare commit action fails.

Source

pub fn disable_prepare_commit_failure_logging(self) -> Self

Disables logging when the prepare commit action fails.

Source

pub fn log_prepare_rollback_failure( self, level: Level, message_prefix: impl Into<String>, ) -> Self

Configures logging when the prepare rollback action fails.

Source

pub fn disable_prepare_rollback_failure_logging(self) -> Self

Disables logging when the prepare rollback action fails.

Source

pub fn prepare<Rn, E>(self, prepare_action: Rn) -> Self
where Rn: Runnable<E> + Send + 'static, E: Display,

Sets the prepare action.

The action runs after the first condition check succeeds and before the lock is acquired. If it succeeds, the executor will later run either rollback or commit according to the final task result.

Errors returned by this action are converted to String and reported by execution methods as super::ExecutionResult::Failed.

§Parameters
  • prepare_action - The fallible action to run before locking.
§Returns

This builder with prepare configured.

Source

pub fn rollback_prepare<Rn, E>(self, rollback_prepare_action: Rn) -> Self
where Rn: Runnable<E> + Send + 'static, E: Display,

Sets the rollback action for a successfully completed prepare action.

Errors returned by this action are converted to String and replace the original execution result with a prepare-rollback failure.

§Parameters
  • rollback_prepare_action - The action to run if the second condition check or task execution fails after prepare succeeds.
§Returns

This builder with prepare rollback configured.

Source

pub fn commit_prepare<Rn, E>(self, commit_prepare_action: Rn) -> Self
where Rn: Runnable<E> + Send + 'static, E: Display,

Sets the commit action for a successfully completed prepare action.

Errors returned by this action are converted to String and replace an otherwise successful execution result with a prepare-commit failure.

§Parameters
  • commit_prepare_action - The action to run if the task succeeds after prepare succeeds.
§Returns

This builder with prepare commit configured.

Source

pub fn catch_panics(self) -> Self

Enables panic capture for tester, prepare callbacks, and task execution.

When enabled, panic payloads are converted to super::executor_error::ExecutorError::Panic and surfaced through super::ExecutionResult.

Source

pub fn set_catch_panics(self, catch_panics: bool) -> Self

Sets whether panic capture for tester, prepare callbacks, and task execution is enabled.

Source

pub fn disable_catch_panics(self) -> Self

Disables panic capture for tester, prepare callbacks, and task execution.

Source

pub fn build(self) -> DoubleCheckedLockExecutor<L, T>

Builds the reusable executor.

§Returns

A DoubleCheckedLockExecutor containing the configured lock, tester, execution logger, and prepare lifecycle callbacks.

Trait Implementations§

Source§

impl<L: Clone, T: Clone> Clone for ExecutorReadyBuilder<L, T>

Source§

fn clone(&self) -> ExecutorReadyBuilder<L, T>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<L, T> Freeze for ExecutorReadyBuilder<L, T>
where L: Freeze,

§

impl<L, T> !RefUnwindSafe for ExecutorReadyBuilder<L, T>

§

impl<L, T> Send for ExecutorReadyBuilder<L, T>
where L: Send,

§

impl<L, T> Sync for ExecutorReadyBuilder<L, T>
where L: Sync,

§

impl<L, T> Unpin for ExecutorReadyBuilder<L, T>
where L: Unpin,

§

impl<L, T> UnsafeUnpin for ExecutorReadyBuilder<L, T>
where L: UnsafeUnpin,

§

impl<L, T> !UnwindSafe for ExecutorReadyBuilder<L, T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.