[−][src]Trait radium::RadiumI16
A maybe-atomic shared mutable i16
.
This trait is implemented by both AtomicI16
and
Cell<i16>
, providing a consistent
interface for interacting with the two types.
Required methods
fn new(v: i16) -> Self
Creates a new value of this type.
fn fence(order: Ordering)
If the underlying value is atomic, calls fence
with the given
Ordering
. Otherwise, does nothing.
See also: fence
fn get_mut(&mut self) -> &mut i16
Returns a mutable reference to the underlying value.
This is safe because the mutable reference guarantees that no other references exist to this value.
fn into_inner(self) -> i16
Consumes and returns the contained value.
This is safe as passing by value ensures no other references exist.
fn load(&self, order: Ordering) -> i16
Load a value from this object.
Ordering arguments are ignored by non-atomic types.
See also: AtomicI16::load
fn store(&self, val: i16, order: Ordering)
Store a value in this object.
Ordering arguments are ignored by non-atomic types.
See also: AtomicI16::store
fn swap(&self, val: i16, order: Ordering) -> i16
Swap with the value stored in this object.
Ordering arguments are ignored by non-atomic types.
See also: AtomicI16::swap
fn compare_and_swap(&self, current: i16, new: i16, order: Ordering) -> i16
Stores a value into this object if the current value is the
same as the current
value.
The return value is always the previous value. If it is equal to current
, then
the value was updated.
Ordering arguments are ignored by non-atomic types.
See also: AtomicI16::compare_and_swap
fn compare_exchange(
&self,
current: i16,
new: i16,
success: Ordering,
failure: Ordering
) -> Result<i16, i16>
&self,
current: i16,
new: i16,
success: Ordering,
failure: Ordering
) -> Result<i16, i16>
Stores a value into this object if the current value is the
same as the current
value.
The return value is a result indicating whether the new value was written and
containing the previous value. On success this value is guaranteed to be equal
to current
.
Ordering arguments are ignored by non-atomic types.
See also: AtomicI16::compare_exchange
fn compare_exchange_weak(
&self,
current: i16,
new: i16,
success: Ordering,
failure: Ordering
) -> Result<i16, i16>
&self,
current: i16,
new: i16,
success: Ordering,
failure: Ordering
) -> Result<i16, i16>
Stores a value into this object if the current value is the
same as the current
value.
Unlike compare_exchange
, this function is allowed to spuriously fail even when
the comparison succeeds, which can result in more efficient code on some
platforms. The return value is a result indicating whether the new value was
written and containing the previous value.
Ordering arguments are ignored by non-atomic types.
See also: AtomicI16::compare_exchange_weak
fn fetch_and(&self, val: i16, order: Ordering) -> i16
Performs a bitwise "and" on the current value and the
argument val
, snd sets the new value to the result.
Returns the previous value.
Ordering arguments are ignored by non-atomic types.
See also: AtomicI16::fetch_and
fn fetch_nand(&self, val: i16, order: Ordering) -> i16
Performs a bitwise "nand" on the current value and the
argument val
, snd sets the new value to the result.
Returns the previous value.
Ordering arguments are ignored by non-atomic types.
See also: AtomicI16::fetch_nand
fn fetch_or(&self, val: i16, order: Ordering) -> i16
Performs a bitwise "or" on the current value and the
argument val
, snd sets the new value to the result.
Returns the previous value.
Ordering arguments are ignored by non-atomic types.
See also: AtomicI16::fetch_or
fn fetch_xor(&self, val: i16, order: Ordering) -> i16
Performs a bitwise "xor" on the current value and the
argument val
, snd sets the new value to the result.
Returns the previous value.
Ordering arguments are ignored by non-atomic types.
See also: AtomicI16::fetch_xor
fn fetch_add(&self, val: i16, order: Ordering) -> i16
Increments the current value by val
, wrapping on overflow.
Returns the previous value.
Ordering arguments are ignored by non-atomic types.
See also: AtomicI16::fetch_add
fn fetch_sub(&self, val: i16, order: Ordering) -> i16
Decrements the current value by val
, wrapping on overflow.
Returns the previous value.
Ordering arguments are ignored by non-atomic types.
See also: AtomicI16::fetch_sub
Implementations on Foreign Types
impl RadiumI16 for AtomicI16
[src]
fn new(v: i16) -> Self
[src]
fn fence(order: Ordering)
[src]
fn get_mut(&mut self) -> &mut i16
[src]
fn into_inner(self) -> i16
[src]
fn load(&self, order: Ordering) -> i16
[src]
fn store(&self, val: i16, order: Ordering)
[src]
fn swap(&self, val: i16, order: Ordering) -> i16
[src]
fn compare_and_swap(&self, current: i16, new: i16, order: Ordering) -> i16
[src]
fn compare_exchange(
&self,
current: i16,
new: i16,
success: Ordering,
failure: Ordering
) -> Result<i16, i16>
[src]
&self,
current: i16,
new: i16,
success: Ordering,
failure: Ordering
) -> Result<i16, i16>
fn compare_exchange_weak(
&self,
current: i16,
new: i16,
success: Ordering,
failure: Ordering
) -> Result<i16, i16>
[src]
&self,
current: i16,
new: i16,
success: Ordering,
failure: Ordering
) -> Result<i16, i16>
fn fetch_and(&self, val: i16, order: Ordering) -> i16
[src]
fn fetch_nand(&self, val: i16, order: Ordering) -> i16
[src]
fn fetch_or(&self, val: i16, order: Ordering) -> i16
[src]
fn fetch_xor(&self, val: i16, order: Ordering) -> i16
[src]
fn fetch_add(&self, val: i16, order: Ordering) -> i16
[src]
fn fetch_sub(&self, val: i16, order: Ordering) -> i16
[src]
impl RadiumI16 for Cell<i16>
[src]
fn new(v: i16) -> Self
[src]
fn fence(_order: Ordering)
[src]
fn get_mut(&mut self) -> &mut i16
[src]
fn into_inner(self) -> i16
[src]
fn load(&self, _order: Ordering) -> i16
[src]
fn store(&self, val: i16, _order: Ordering)
[src]
fn swap(&self, val: i16, _order: Ordering) -> i16
[src]
fn compare_and_swap(&self, current: i16, new: i16, _order: Ordering) -> i16
[src]
fn compare_exchange(
&self,
current: i16,
new: i16,
_success: Ordering,
_failure: Ordering
) -> Result<i16, i16>
[src]
&self,
current: i16,
new: i16,
_success: Ordering,
_failure: Ordering
) -> Result<i16, i16>
fn compare_exchange_weak(
&self,
current: i16,
new: i16,
success: Ordering,
failure: Ordering
) -> Result<i16, i16>
[src]
&self,
current: i16,
new: i16,
success: Ordering,
failure: Ordering
) -> Result<i16, i16>