pub trait AtomicOperations {
// Required methods
unsafe fn atomic_store(dst: *mut Self, val: Self);
unsafe fn atomic_load(dst: *const Self) -> Self;
unsafe fn atomic_add(dst: *mut Self, val: Self);
unsafe fn atomic_sub(dst: *mut Self, val: Self);
unsafe fn atomic_and(dst: *mut Self, val: Self);
unsafe fn atomic_clear(dst: *mut Self, val: Self);
unsafe fn atomic_or(dst: *mut Self, val: Self);
unsafe fn atomic_xor(dst: *mut Self, val: Self);
}Expand description
Atomic arithmetic and bitwise operations implemented for numerical types. Each operation is implemented with a single assembly instruction.
Required Methods§
Sourceunsafe fn atomic_store(dst: *mut Self, val: Self)
unsafe fn atomic_store(dst: *mut Self, val: Self)
Store value into destination pointee.
Sourceunsafe fn atomic_load(dst: *const Self) -> Self
unsafe fn atomic_load(dst: *const Self) -> Self
Read value from destination pointee.
Sourceunsafe fn atomic_add(dst: *mut Self, val: Self)
unsafe fn atomic_add(dst: *mut Self, val: Self)
Add value to destination pointee. Result may wrap around.
Sourceunsafe fn atomic_sub(dst: *mut Self, val: Self)
unsafe fn atomic_sub(dst: *mut Self, val: Self)
Subtract value from destination pointee. Result may wrap around.
Sourceunsafe fn atomic_and(dst: *mut Self, val: Self)
unsafe fn atomic_and(dst: *mut Self, val: Self)
Clear all bits in destination pointee that are zeroed in value.
Sourceunsafe fn atomic_clear(dst: *mut Self, val: Self)
unsafe fn atomic_clear(dst: *mut Self, val: Self)
Clear all bits in destination pointee that are set in value
Sourceunsafe fn atomic_or(dst: *mut Self, val: Self)
unsafe fn atomic_or(dst: *mut Self, val: Self)
Set all bits in destination pointee that are set in value.
Sourceunsafe fn atomic_xor(dst: *mut Self, val: Self)
unsafe fn atomic_xor(dst: *mut Self, val: Self)
Toggle all bits in destination pointee that are set in value.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.