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
18mod cas_decision;
19mod cas_outcome;
20mod cas_success;
21pub mod constants;
22pub mod error;
23pub mod event;
24pub mod executor;
25pub mod observability;
26pub mod options;
27pub mod report;
28pub mod strategy;
29
30pub use cas_decision::CasDecision;
31pub use cas_outcome::CasOutcome;
32pub use cas_success::CasSuccess;
33pub use error::{CasAttemptFailure, CasAttemptFailureKind, CasError, CasErrorKind};
34pub use event::{CasContext, CasEvent, CasHooks};
35pub use executor::{CasBuilder, CasExecutor};
36pub use observability::{
37    CasAlert, CasObservabilityConfig, CasObservabilityMode, ContentionThresholds,
38    ListenerPanicPolicy,
39};
40pub use options::CasTimeoutPolicy;
41pub use report::{CasExecutionOutcome, CasExecutionReport};
42pub use strategy::{CasStrategy, CasStrategyProfile};