pub struct Atomic<T: Copy>(Cell<T>);
Expand description

This is a single threaded variant of AtomicU64, AtomicUsize, etc. It has explicit ordering arguments and is only intended for use with the native atomic types. You should use this type through the AtomicU64, AtomicUsize, etc, type aliases as it’s not intended to be used separately.

Tuple Fields§

§0: Cell<T>

Implementations§

source§

impl<T: Copy> Atomic<T>

source

pub fn new(v: T) -> Self

source

pub fn into_inner(self) -> T

source

pub fn load(&self, _: Ordering) -> T

source

pub fn store(&self, val: T, _: Ordering)

source

pub fn swap(&self, val: T, _: Ordering) -> T

source§

impl Atomic<bool>

source

pub fn fetch_or(&self, val: bool, _: Ordering) -> bool

source

pub fn fetch_and(&self, val: bool, _: Ordering) -> bool

source§

impl<T: Copy + PartialEq> Atomic<T>

source

pub fn compare_exchange( &self, current: T, new: T, _: Ordering, _: Ordering ) -> Result<T, T>

source§

impl<T: Add<Output = T> + Copy> Atomic<T>

source

pub fn fetch_add(&self, val: T, _: Ordering) -> T

Trait Implementations§

source§

impl<T: Debug + Copy> Debug for Atomic<T>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: Default + Copy> Default for Atomic<T>

source§

fn default() -> Atomic<T>

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for Atomic<T>

§

impl<T> Send for Atomic<T>where T: Send,

§

impl<T> !Sync for Atomic<T>

§

impl<T> Unpin for Atomic<T>where T: Unpin,

§

impl<T> UnwindSafe for Atomic<T>where T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Aligned for T

source§

const ALIGN: Alignment = const ALIGN: Alignment = Alignment::of::<Self>();

Alignment of Self.
source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<'a, T> Captures<'a> for Twhere T: ?Sized,

Layout§

Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.