Skip to main content

qubit_atomic/atomic/
mod.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2025 - 2026.
4 *    Haixing Hu, Qubit Co. Ltd.
5 *
6 *    All rights reserved.
7 *
8 ******************************************************************************/
9
10//! # Atomic Types
11//!
12//! Provides easy-to-use atomic types with sensible default memory orderings.
13//! These types wrap `std::sync::atomic` types and provide a more ergonomic
14//! API similar to Java's `java.util.concurrent.atomic` package.
15//!
16//! # Features
17//!
18//! - Automatic memory ordering selection for common use cases
19//! - Rich set of high-level operations (increment, decrement, functional
20//!   updates, etc.)
21//! - Zero-cost abstraction with inline methods
22//! - Access to underlying types via `inner()` for advanced use cases
23//!
24//! # Author
25//!
26//! Haixing Hu
27
28#[macro_use]
29mod atomic_integer_macro;
30
31mod atomic_bool;
32mod atomic_counter;
33mod atomic_f32;
34mod atomic_f64;
35mod atomic_i16;
36mod atomic_i32;
37mod atomic_i64;
38mod atomic_i8;
39mod atomic_isize;
40mod atomic_ref;
41mod atomic_signed_counter;
42mod atomic_u16;
43mod atomic_u32;
44mod atomic_u64;
45mod atomic_u8;
46mod atomic_usize;
47mod traits;
48
49pub use atomic_bool::AtomicBool;
50pub use atomic_counter::AtomicCounter;
51pub use atomic_f32::AtomicF32;
52pub use atomic_f64::AtomicF64;
53pub use atomic_i8::AtomicI8;
54pub use atomic_i16::AtomicI16;
55pub use atomic_i32::AtomicI32;
56pub use atomic_i64::AtomicI64;
57pub use atomic_isize::AtomicIsize;
58pub use atomic_ref::AtomicRef;
59pub use atomic_signed_counter::AtomicSignedCounter;
60pub use atomic_u8::AtomicU8;
61pub use atomic_u16::AtomicU16;
62pub use atomic_u32::AtomicU32;
63pub use atomic_u64::AtomicU64;
64pub use atomic_usize::AtomicUsize;
65pub use traits::{
66    Atomic,
67    AtomicNumber,
68};