Skip to main content

qubit_cas/
lib.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2025 - 2026.
4 *    Haixing Hu, Qubit Co. Ltd.
5 *
6 *    All rights reserved.
7 *
8 ******************************************************************************/
9//! Typed compare-and-swap executor for synchronous and asynchronous workflows.
10//!
11//! `CasExecutor<T, E>` binds the shared state type `T` and operation error type
12//! `E`. Each execution call introduces its own business output type `R`, so one
13//! executor configuration can serve multiple CAS operations over the same state.
14
15#![deny(missing_docs)]
16#![deny(unsafe_op_in_unsafe_fn)]
17
18pub mod constants;
19mod decision;
20pub mod error;
21pub mod event;
22pub mod executor;
23pub mod observability;
24pub mod options;
25mod outcome;
26pub mod report;
27pub mod strategy;
28mod success;
29
30pub use decision::CasDecision;
31pub use error::{CasAttemptFailure, CasAttemptFailureKind, CasError, CasErrorKind};
32pub use event::{CasContext, CasEvent, CasHooks};
33pub use executor::{CasBuilder, CasExecutor};
34pub use observability::{
35    CasAlert, CasObservabilityConfig, CasObservabilityMode, ContentionThresholds,
36    ListenerPanicPolicy,
37};
38pub use options::CasTimeoutPolicy;
39pub use outcome::CasOutcome;
40pub use report::{CasExecutionOutcome, CasExecutionReport};
41pub use strategy::{CasStrategy, CasStrategyProfile};
42pub use success::CasSuccess;