Skip to main content

Rmw

Enum Rmw 

Source
pub enum Rmw {
    Add,
    Sub,
    And,
    Nand,
    Or,
    Xor,
}
Expand description

What a read modify write does to the value it read.

The six gcc has, which is every operation either family names. What a machine has a single instruction for is not decided here: the back end reads this and either finds an instruction or writes the loop around a compare and exchange that stands in for one.

Variants§

§

Add

Addition, which is lock xadd on this machine.

§

Sub

Subtraction, which is the same instruction over the negated operand.

§

And

Bitwise and.

§

Nand

Bitwise and with every bit of the answer flipped, which is the one of the six that is two operations rather than one and the one no machine here has anything for.

§

Or

Bitwise or.

§

Xor

Bitwise exclusive or.

Trait Implementations§

Source§

impl Clone for Rmw

Source§

fn clone(&self) -> Rmw

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Rmw

Source§

impl Debug for Rmw

Source§

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

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

impl Eq for Rmw

Source§

impl PartialEq for Rmw

Source§

fn eq(&self, other: &Rmw) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Rmw

Auto Trait Implementations§

§

impl Freeze for Rmw

§

impl RefUnwindSafe for Rmw

§

impl Send for Rmw

§

impl Sync for Rmw

§

impl Unpin for Rmw

§

impl UnsafeUnpin for Rmw

§

impl UnwindSafe for Rmw

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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 T
where 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

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.