prism3_atomic/atomic/
mod.rs

1/*******************************************************************************
2 *
3 *    Copyright (c) 2025.
4 *    3-Prism 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_f32;
33mod atomic_f64;
34mod atomic_i16;
35mod atomic_i32;
36mod atomic_i64;
37mod atomic_i8;
38mod atomic_isize;
39mod atomic_ref;
40mod atomic_u16;
41mod atomic_u32;
42mod atomic_u64;
43mod atomic_u8;
44mod atomic_usize;
45mod traits;
46
47pub use atomic_bool::AtomicBool;
48pub use atomic_f32::AtomicF32;
49pub use atomic_f64::AtomicF64;
50pub use atomic_i16::AtomicI16;
51pub use atomic_i32::AtomicI32;
52pub use atomic_i64::AtomicI64;
53pub use atomic_i8::AtomicI8;
54pub use atomic_isize::AtomicIsize;
55pub use atomic_ref::AtomicRef;
56pub use atomic_u16::AtomicU16;
57pub use atomic_u32::AtomicU32;
58pub use atomic_u64::AtomicU64;
59pub use atomic_u8::AtomicU8;
60pub use atomic_usize::AtomicUsize;
61pub use traits::{
62    Atomic,
63    AtomicNumber,
64};