Struct atom::AtomSetOnce
[−]
[src]
pub struct AtomSetOnce<P> where
P: IntoRawPtr + FromRawPtr, { /* fields omitted */ }
This is a restricted version of the Atom. It allows for only
set_if_none
to be called.
swap
and take
can be used only with a mutable reference. Meaning
that AtomSetOnce is not usable as a
Methods
impl<P> AtomSetOnce<P> where
P: IntoRawPtr + FromRawPtr,
[src]
P: IntoRawPtr + FromRawPtr,
pub fn empty() -> AtomSetOnce<P>
[src]
Create an empty AtomSetOnce
pub fn new(value: P) -> AtomSetOnce<P>
[src]
Create a new AtomSetOnce
from Pointer P
pub fn set_if_none(&self, v: P) -> Option<P>
[src]
This will do a CAS
setting the value only if it is NULL
this will return OK(())
if the value was written,
otherwise a Err(P)
will be returned, where the value was
the same value that you passed into this function
pub fn into_atom(self) -> Atom<P>
[src]
Convert an AtomSetOnce
into an Atom
pub fn atom(&mut self) -> &mut Atom<P>
[src]
Allow access to the atom if exclusive access is granted
pub fn is_none(&self) -> bool
[src]
Check to see if an atom is None
This only means that the contents was None when it was measured
impl<T, P> AtomSetOnce<P> where
P: IntoRawPtr + FromRawPtr + Deref<Target = T>,
[src]
P: IntoRawPtr + FromRawPtr + Deref<Target = T>,
impl<T> AtomSetOnce<Box<T>>
[src]
impl<T> AtomSetOnce<T> where
T: Clone + IntoRawPtr + FromRawPtr,
[src]
T: Clone + IntoRawPtr + FromRawPtr,
Trait Implementations
impl<P: Debug> Debug for AtomSetOnce<P> where
P: IntoRawPtr + FromRawPtr,
[src]
P: IntoRawPtr + FromRawPtr,