/*******************************************************************************
 *
 *    Copyright (c) 2025 - 2026 Haixing Hu.
 *
 *    SPDX-License-Identifier: Apache-2.0
 *
 *    Licensed under the Apache License, Version 2.0.
 *
 ******************************************************************************/
//! # Double-Checked Lock Executor
//!
//! Provides a double-checked lock executor for executing tasks with condition
//! checking and prepare lifecycle support.
//!

mod callback_error;
mod double_checked_lock;
mod double_checked_lock_builder;
mod double_checked_lock_executor;
mod double_checked_lock_ready_builder;
mod execution_context;
mod execution_logger;
mod execution_result;
mod executor_builder;
mod executor_error;
mod executor_lock_builder;
mod executor_ready_builder;

pub use callback_error::CallbackError;
pub use double_checked_lock::DoubleCheckedLock;
pub use double_checked_lock_builder::DoubleCheckedLockBuilder;
pub use double_checked_lock_executor::DoubleCheckedLockExecutor;
pub use double_checked_lock_ready_builder::DoubleCheckedLockReadyBuilder;
pub use execution_context::ExecutionContext;
pub use execution_logger::ExecutionLogger;
pub use execution_result::ExecutionResult;
pub use executor_builder::ExecutorBuilder;
pub use executor_error::ExecutorError;
pub use executor_lock_builder::ExecutorLockBuilder;
pub use executor_ready_builder::ExecutorReadyBuilder;
