Skip to main content

AtomicRepr

Trait AtomicRepr 

Source
pub trait AtomicRepr: Copy + 'static {
    type Atomic: 'static + Send + Sync;

    // Required methods
    fn new_atomic(val: Self) -> Self::Atomic;
    fn load(atomic: &Self::Atomic) -> Self;
    fn store(atomic: &Self::Atomic, val: Self);
    fn into_inner(atomic: Self::Atomic) -> Self;
}
Expand description

Trait for types that can be stored in a RelaxedAtomic.

Implemented for bool, u8, u16, u32, usize, i8, i16, i32, isize.

Required Associated Types§

Source

type Atomic: 'static + Send + Sync

The underlying std::sync::atomic::Atomic* type.

Required Methods§

Source

fn new_atomic(val: Self) -> Self::Atomic

Create a new atomic instance for the given value.

Source

fn load(atomic: &Self::Atomic) -> Self

Load the value with Ordering::Relaxed.

Source

fn store(atomic: &Self::Atomic, val: Self)

Store the value with Ordering::Relaxed.

Source

fn into_inner(atomic: Self::Atomic) -> Self

Unwrap the atomic and return the contained value (no atomic instruction).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl AtomicRepr for bool

Source§

type Atomic = Atomic<bool>

Source§

fn new_atomic(val: Self) -> Self::Atomic

Source§

fn load(atomic: &Self::Atomic) -> Self

Source§

fn store(atomic: &Self::Atomic, val: Self)

Source§

fn into_inner(atomic: Self::Atomic) -> Self

Source§

impl AtomicRepr for i8

Source§

type Atomic = Atomic<i8>

Source§

fn new_atomic(val: Self) -> Self::Atomic

Source§

fn load(atomic: &Self::Atomic) -> Self

Source§

fn store(atomic: &Self::Atomic, val: Self)

Source§

fn into_inner(atomic: Self::Atomic) -> Self

Source§

impl AtomicRepr for i16

Source§

type Atomic = Atomic<i16>

Source§

fn new_atomic(val: Self) -> Self::Atomic

Source§

fn load(atomic: &Self::Atomic) -> Self

Source§

fn store(atomic: &Self::Atomic, val: Self)

Source§

fn into_inner(atomic: Self::Atomic) -> Self

Source§

impl AtomicRepr for i32

Source§

type Atomic = Atomic<i32>

Source§

fn new_atomic(val: Self) -> Self::Atomic

Source§

fn load(atomic: &Self::Atomic) -> Self

Source§

fn store(atomic: &Self::Atomic, val: Self)

Source§

fn into_inner(atomic: Self::Atomic) -> Self

Source§

impl AtomicRepr for isize

Source§

type Atomic = Atomic<isize>

Source§

fn new_atomic(val: Self) -> Self::Atomic

Source§

fn load(atomic: &Self::Atomic) -> Self

Source§

fn store(atomic: &Self::Atomic, val: Self)

Source§

fn into_inner(atomic: Self::Atomic) -> Self

Source§

impl AtomicRepr for u8

Source§

type Atomic = Atomic<u8>

Source§

fn new_atomic(val: Self) -> Self::Atomic

Source§

fn load(atomic: &Self::Atomic) -> Self

Source§

fn store(atomic: &Self::Atomic, val: Self)

Source§

fn into_inner(atomic: Self::Atomic) -> Self

Source§

impl AtomicRepr for u16

Source§

type Atomic = Atomic<u16>

Source§

fn new_atomic(val: Self) -> Self::Atomic

Source§

fn load(atomic: &Self::Atomic) -> Self

Source§

fn store(atomic: &Self::Atomic, val: Self)

Source§

fn into_inner(atomic: Self::Atomic) -> Self

Source§

impl AtomicRepr for u32

Source§

type Atomic = Atomic<u32>

Source§

fn new_atomic(val: Self) -> Self::Atomic

Source§

fn load(atomic: &Self::Atomic) -> Self

Source§

fn store(atomic: &Self::Atomic, val: Self)

Source§

fn into_inner(atomic: Self::Atomic) -> Self

Source§

impl AtomicRepr for usize

Source§

type Atomic = Atomic<usize>

Source§

fn new_atomic(val: Self) -> Self::Atomic

Source§

fn load(atomic: &Self::Atomic) -> Self

Source§

fn store(atomic: &Self::Atomic, val: Self)

Source§

fn into_inner(atomic: Self::Atomic) -> Self

Implementors§