Skip to main content

Add

Trait Add 

Source
pub trait Add {
    type Type;

    // Required method
    fn fetch_add(&self, val: Self::Type, order: Ordering) -> Self::Type;
}
Expand description

Adds to the current value, returning the previous value.

Required Associated Types§

Source

type Type

The underlying type

Required Methods§

Source

fn fetch_add(&self, val: Self::Type, order: Ordering) -> Self::Type

Adds to the current value, returning the previous value.

This operation wraps around on overflow.

§Examples
use std::sync::atomic::{AtomicU8, Ordering};
use atomic_traits::{Atomic, fetch};

let foo = AtomicU8::new(0);
assert_eq!(fetch::Add::fetch_add(&foo, 10, Ordering::SeqCst), 0);
assert_eq!(Atomic::load(&foo, Ordering::SeqCst), 10);

Dyn Compatibility§

This trait is dyn compatible.

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

Implementations on Foreign Types§

Source§

impl Add for Atomic<i8>

Source§

type Type = i8

Source§

fn fetch_add( &self, val: <Atomic<i8> as Add>::Type, order: Ordering, ) -> <Atomic<i8> as Add>::Type

Source§

impl Add for Atomic<i16>

Source§

type Type = i16

Source§

fn fetch_add( &self, val: <Atomic<i16> as Add>::Type, order: Ordering, ) -> <Atomic<i16> as Add>::Type

Source§

impl Add for Atomic<i32>

Source§

type Type = i32

Source§

fn fetch_add( &self, val: <Atomic<i32> as Add>::Type, order: Ordering, ) -> <Atomic<i32> as Add>::Type

Source§

impl Add for Atomic<i64>

Source§

type Type = i64

Source§

fn fetch_add( &self, val: <Atomic<i64> as Add>::Type, order: Ordering, ) -> <Atomic<i64> as Add>::Type

Source§

impl Add for Atomic<isize>

Source§

type Type = isize

Source§

fn fetch_add( &self, val: <Atomic<isize> as Add>::Type, order: Ordering, ) -> <Atomic<isize> as Add>::Type

Source§

impl Add for Atomic<u8>

Source§

type Type = u8

Source§

fn fetch_add( &self, val: <Atomic<u8> as Add>::Type, order: Ordering, ) -> <Atomic<u8> as Add>::Type

Source§

impl Add for Atomic<u16>

Source§

type Type = u16

Source§

fn fetch_add( &self, val: <Atomic<u16> as Add>::Type, order: Ordering, ) -> <Atomic<u16> as Add>::Type

Source§

impl Add for Atomic<u32>

Source§

type Type = u32

Source§

fn fetch_add( &self, val: <Atomic<u32> as Add>::Type, order: Ordering, ) -> <Atomic<u32> as Add>::Type

Source§

impl Add for Atomic<u64>

Source§

type Type = u64

Source§

fn fetch_add( &self, val: <Atomic<u64> as Add>::Type, order: Ordering, ) -> <Atomic<u64> as Add>::Type

Source§

impl Add for Atomic<usize>

Source§

type Type = usize

Source§

fn fetch_add( &self, val: <Atomic<usize> as Add>::Type, order: Ordering, ) -> <Atomic<usize> as Add>::Type

Implementors§

Source§

impl<T> Add for AtomicNumber<T>
where T: PrimitiveAtomicInteger + FromPrimitive,

Source§

type Type = T