| Crates.io | atomic-plus |
| lib.rs | atomic-plus |
| version | 0.1.1 |
| created_at | 2025-12-31 09:19:51.296221+00 |
| updated_at | 2025-12-31 09:24:08.808258+00 |
| description | type extensions for the atomic standard library. |
| homepage | |
| repository | https://github.com/0xhappyboy/atomic-plus |
| max_upload_size | |
| id | 2014335 |
| size | 41,660 |
AtomicF64: Atomic operations for 64-bit floating point numbersAtomicF32: Atomic operations for 32-bit floating point numbersAtomicBoolArray: Space-efficient atomic boolean array (1 bit per boolean)AtomicShortString: Fixed-length atomic string (max 32 ASCII characters)AtomicTimestamp: Nanosecond-precision atomic timestampAtomicPtr: Generic atomic pointer wrapperAtomicRc: Atomic reference counting (similar to std::rc::Rc but with atomic operations)Add to your Cargo.toml:
[dependencies]
atomic-ext = "0.1.0"
use atomic_ext::{AtomicF64, AtomicBoolArray};
use std::sync::atomic::Ordering;
// Create an atomic float
let atomic_float = AtomicF64::new(10.5);
atomic_float.store(20.5, Ordering::Relaxed);
let value = atomic_float.load(Ordering::Relaxed);
// Create an atomic boolean array
let bool_array = AtomicBoolArray::new(100);
bool_array.set(42, true, Ordering::Relaxed);
let is_true = bool_array.get(42, Ordering::Relaxed);
AtomicF64 and AtomicF32 store floats using their bit patternsAtomicBoolArray uses 1/64th the memory of Vec<AtomicBool>AtomicRc is not Send/Sync by default (contains raw pointers)AtomicTimestamp provides nanosecond precisionRun tests with:
cargo test