pub unsafe trait AtomicPrimitive:
Sized
+ Copy
+ Sealed {
type AtomicInner;
}🔬This is a nightly-only experimental API. (
atomic_internals)Expand description
A marker trait for primitive types which can be modified atomically.
This is an implementation detail for Atomic<T> which may disappear or be replaced at any time.
§Safety
Types implementing this trait must be primitives that can be modified atomically.
The associated Self::AtomicInner type must have the same size and bit validity as Self,
but may have a higher alignment requirement, so the following transmutes are sound:
&mut Self::AtomicInneras&mut SelfSelfasSelf::AtomicInneror the reverse
Required Associated Types§
Sourcetype AtomicInner
🔬This is a nightly-only experimental API. (atomic_internals)
type AtomicInner
atomic_internals)Temporary implementation detail.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementors§
Source§impl AtomicPrimitive for bool
Available on target_has_atomic_load_store=8 only.
impl AtomicPrimitive for bool
Available on
target_has_atomic_load_store=8 only.type AtomicInner = AtomicBool
Source§impl AtomicPrimitive for i8
Available on target_has_atomic_load_store=8 only.
impl AtomicPrimitive for i8
Available on
target_has_atomic_load_store=8 only.type AtomicInner = AtomicI8
Source§impl AtomicPrimitive for i16
Available on target_has_atomic_load_store=16 only.
impl AtomicPrimitive for i16
Available on
target_has_atomic_load_store=16 only.type AtomicInner = AtomicI16
Source§impl AtomicPrimitive for i32
Available on target_has_atomic_load_store=32 only.
impl AtomicPrimitive for i32
Available on
target_has_atomic_load_store=32 only.type AtomicInner = AtomicI32
Source§impl AtomicPrimitive for i64
Available on target_has_atomic_load_store=64 only.
impl AtomicPrimitive for i64
Available on
target_has_atomic_load_store=64 only.type AtomicInner = AtomicI64
Source§impl AtomicPrimitive for isize
Available on target_has_atomic_load_store=ptr only.
impl AtomicPrimitive for isize
Available on
target_has_atomic_load_store=ptr only.type AtomicInner = AtomicIsize
Source§impl AtomicPrimitive for u8
Available on target_has_atomic_load_store=8 only.
impl AtomicPrimitive for u8
Available on
target_has_atomic_load_store=8 only.type AtomicInner = AtomicU8
Source§impl AtomicPrimitive for u16
Available on target_has_atomic_load_store=16 only.
impl AtomicPrimitive for u16
Available on
target_has_atomic_load_store=16 only.type AtomicInner = AtomicU16
Source§impl AtomicPrimitive for u32
Available on target_has_atomic_load_store=32 only.
impl AtomicPrimitive for u32
Available on
target_has_atomic_load_store=32 only.type AtomicInner = AtomicU32
Source§impl AtomicPrimitive for u64
Available on target_has_atomic_load_store=64 only.
impl AtomicPrimitive for u64
Available on
target_has_atomic_load_store=64 only.type AtomicInner = AtomicU64
Source§impl AtomicPrimitive for usize
Available on target_has_atomic_load_store=ptr only.
impl AtomicPrimitive for usize
Available on
target_has_atomic_load_store=ptr only.type AtomicInner = AtomicUsize
Source§impl<T> AtomicPrimitive for *mut T
Available on target_has_atomic_load_store=ptr only.
impl<T> AtomicPrimitive for *mut T
Available on
target_has_atomic_load_store=ptr only.