Expand description

radium provides a series of helpers for a uniform API over both atomic types like AtomicUsize, and non-atomic types like Cell<T>.

This crate is #![no_std]-compatible, and uses no non-core types.

For details, see the documentation for Radium.

The types module provides type names that are atomic where the target supports it, and fall back to Cell when the target does not.

The if_atomic! macro provides a means of conditional compilation based on the presence of atomic instructions. It is a substitute for the cfg(target_has_atomic) or cfg(accessible) attribute tests, which are not yet stabilized.


@kneecaw - https://twitter.com/kneecaw/status/1132695060812849154

Feelin’ lazy: Has someone already written a helper trait abstracting operations over AtomicUsize and Cell<usize> for generic code which may not care about atomicity?

@ManishEarth - https://twitter.com/ManishEarth/status/1132706585300496384

no but call the crate radium

(since people didn’t care that it was radioactive and used it in everything)

Modules

Marker traits used by Radium.

Best-effort atomic types

Macros

Conditional compilation based on the presence of atomic instructions.

Traits

A maybe-atomic shared mutable fundamental type T.