Skip to main content

DoubleCheckedLockReadyBuilder

Struct DoubleCheckedLockReadyBuilder 

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

Convenience builder state with tester attached.

Implementations§

Source§

impl<L, T> DoubleCheckedLockReadyBuilder<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.

§Parameters
  • level - Log level used for unmet-condition messages.
  • message - Full log message emitted when the condition is not met.
§Returns

This builder with unmet-condition logging configured.

Source

pub fn disable_unmet_condition_logging(self) -> Self

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

§Returns

This builder with unmet-condition logging disabled.

Source

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

Configures logging when the prepare action fails.

§Parameters
  • level - Log level used for prepare failure messages.
  • message_prefix - Prefix placed before the prepare failure text.
§Returns

This builder with prepare failure logging configured.

Source

pub fn disable_prepare_failure_logging(self) -> Self

Disables logging when the prepare action fails.

§Returns

This builder with prepare failure logging disabled.

Source

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

Configures logging when the prepare commit action fails.

§Parameters
  • level - Log level used for prepare-commit failure messages.
  • message_prefix - Prefix placed before the prepare-commit failure text.
§Returns

This builder with prepare-commit failure logging configured.

Source

pub fn disable_prepare_commit_failure_logging(self) -> Self

Disables logging when the prepare commit action fails.

§Returns

This builder with prepare-commit failure logging disabled.

Source

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

Configures logging when the prepare rollback action fails.

§Parameters
  • level - Log level used for prepare-rollback failure messages.
  • message_prefix - Prefix placed before the prepare-rollback failure text.
§Returns

This builder with prepare-rollback failure logging configured.

Source

pub fn disable_prepare_rollback_failure_logging(self) -> Self

Disables logging when the prepare rollback action fails.

§Returns

This builder with prepare-rollback failure logging disabled.

Source

pub fn catch_panics(self) -> Self

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

§Returns

This builder with panic capture enabled.

Source

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

Derives a builder with panic capture enabled or disabled for tester, prepare callbacks, and task execution.

§Parameters
  • catch_panics - true to capture panics as execution errors, or false to let panics unwind.
§Returns

A reconfigured builder with the updated panic-capture setting.

Source

pub fn disable_catch_panics(self) -> Self

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

§Returns

This builder with panic capture disabled.

Source

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

Sets the prepare action.

§Parameters
  • prepare_action - Fallible action to run after the first condition check and before locking.
§Returns

This builder with prepare configured.

§Errors

This builder method does not return errors. If prepare_action later returns an error during execution, the execution result becomes super::ExecutionResult::Failed with super::ExecutorError::PrepareFailed.

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 prepare.

§Parameters
  • rollback_prepare_action - Fallible action to run when prepare completed but the second condition check or task fails.
§Returns

This builder with prepare rollback configured.

§Errors

This builder method does not return errors. If rollback_prepare_action later returns an error during execution, the execution result becomes super::ExecutionResult::Failed with super::ExecutorError::PrepareRollbackFailed.

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 prepare.

§Parameters
  • commit_prepare_action - Fallible action to run when prepare completed and the task succeeds.
§Returns

This builder with prepare commit configured.

§Errors

This builder method does not return errors. If commit_prepare_action later returns an error during execution, the execution result becomes super::ExecutionResult::Failed with super::ExecutorError::PrepareCommitFailed.

Source

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

Builds a reusable DoubleCheckedLockExecutor.

§Returns

A reusable executor containing the configured lock, tester, logger, and prepare lifecycle callbacks.

Source

pub fn call<C, R, E>(self, task: C) -> ExecutionContext<R, E>
where C: Callable<R, E>, E: Display,

Runs a callable task with one-shot executor creation.

§Parameters
  • task - Zero-argument callable executed after both condition checks pass.
§Returns

An ExecutionContext containing success, unmet-condition, or failure information.

Source

pub fn execute<Rn, E>(self, task: Rn) -> ExecutionContext<(), E>
where Rn: Runnable<E>, E: Display,

Runs a runnable task with one-shot executor creation.

§Parameters
  • task - Zero-argument runnable executed after both condition checks pass.
§Returns

An ExecutionContext containing success, unmet-condition, or failure information.

Source

pub fn call_with<C, R, E>(self, task: C) -> ExecutionContext<R, E>
where C: CallableWith<T, R, E>, E: Display,

Runs a callable task with mutable protected data.

§Parameters
  • task - Callable receiving &mut T after both condition checks pass.
§Returns

An ExecutionContext containing success, unmet-condition, or failure information.

Source

pub fn execute_with<Rn, E>(self, task: Rn) -> ExecutionContext<(), E>
where Rn: RunnableWith<T, E>, E: Display,

Runs a runnable task with mutable protected data.

§Parameters
  • task - Runnable receiving &mut T after both condition checks pass.
§Returns

An ExecutionContext containing success, unmet-condition, or failure information.

Trait Implementations§

Source§

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

Source§

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

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<L, T> !UnwindSafe for DoubleCheckedLockReadyBuilder<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.