generic-atomics 0.1.4

Generic Atomic types for types that implement num-primitive traits
Documentation
# Generic Atomics

[![crate](https://img.shields.io/crates/v/generic-atomics.svg)](https://crates.io/crates/generic-atomics) [![documentation](https://docs.rs/generic-atomics/badge.svg)](https://docs.rs/generic-atomics/) [![MSRV](https://img.shields.io/badge/MSRV-1.97.1-green)](https://blog.rust-lang.org/2026/07/16/Rust-1.97.1/)
<!-- [![Continuous integration](https://codeberg.org/crop/rust-generic-atomics/actions/workflows/ci.yaml/badge.svg)](https://codeberg.org/crop/rust-generic-atomics/actions/workflows/ci.yaml) -->

Generic Atomic type for types that implement num-primitive traits.

## Compatibility

The crate is tested for stable and nightly compiler.

Current MSRV is `1.97.1`.

## Usage

Add this to your `Cargo.toml`:

```toml
[dependencies]
generic-atomics = "0.1"
```

## Example

```rust
use generic_atomics::{
    Atomic, IntoAtomicFloat, UseUpdateToAdd,
};
use std::sync::atomic::Ordering;

fn main() {
    let fourtytwo = 42.0f64;
    let one = 1f64;
    let af = fourtytwo.into_atomic_float();
    af.fetch_add_via_update(one, Ordering::Relaxed);
    assert_eq!(fourtytwo + one, af.load(Ordering::Relaxed));
}
```

# Context

This crate started from [atomic_float](https://crates.io/crates/atomic_float) and the code generated by the macros of [atomic-traits](https://crates.io/crates/atomic-traits), unlike atomic_float this provides a generic AtomicFlaot<T: PrimitiveFloat> that implements the atomic-traits.