W3cubDocs

/Rust

Trait AtomicPrimitive

pub unsafe trait AtomicPrimitive:
    Sized
    + Copy
    + Sealed {
    type AtomicInner;
}
🔬This is a nightly-only experimental API. (atomic_internals)

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::AtomicInner as &mut Self
  • Self as Self::AtomicInner or the reverse

Required Associated Types

Source
type AtomicInner
🔬This is a nightly-only experimental API. (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 boolAvailable on target_has_atomic_load_store=8 only.
Source
type AtomicInner = AtomicBool
Source
impl AtomicPrimitive for i8Available on target_has_atomic_load_store=8 only.
Source
type AtomicInner = AtomicI8
Source
impl AtomicPrimitive for i16Available on target_has_atomic_load_store=16 only.
Source
type AtomicInner = AtomicI16
Source
impl AtomicPrimitive for i32Available on target_has_atomic_load_store=32 only.
Source
type AtomicInner = AtomicI32
Source
impl AtomicPrimitive for i64Available on target_has_atomic_load_store=64 only.
Source
type AtomicInner = AtomicI64
Source
impl AtomicPrimitive for isizeAvailable on target_has_atomic_load_store=ptr only.
Source
type AtomicInner = AtomicIsize
Source
impl AtomicPrimitive for u8Available on target_has_atomic_load_store=8 only.
Source
type AtomicInner = AtomicU8
Source
impl AtomicPrimitive for u16Available on target_has_atomic_load_store=16 only.
Source
type AtomicInner = AtomicU16
Source
impl AtomicPrimitive for u32Available on target_has_atomic_load_store=32 only.
Source
type AtomicInner = AtomicU32
Source
impl AtomicPrimitive for u64Available on target_has_atomic_load_store=64 only.
Source
type AtomicInner = AtomicU64
Source
impl AtomicPrimitive for usizeAvailable on target_has_atomic_load_store=ptr only.
Source
type AtomicInner = AtomicUsize
Source
impl<T> AtomicPrimitive for *mut TAvailable on target_has_atomic_load_store=ptr only.
Source
type AtomicInner = AtomicPtr<T>

© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/sync/atomic/trait.AtomicPrimitive.html