[][src]Struct atom::AtomSetOnce

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

Implementations

impl<P> AtomSetOnce<P> where
    P: IntoRawPtr + FromRawPtr
[src]

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, order: Ordering) -> 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, order: Ordering) -> 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]

pub fn get(&self, order: Ordering) -> Option<&T>[src]

If the Atom is set, get the value

impl<T> AtomSetOnce<Box<T>>[src]

pub fn get_mut(&mut self, order: Ordering) -> Option<&mut T>[src]

If the Atom is set, get the value

impl<T> AtomSetOnce<T> where
    T: Clone + IntoRawPtr + FromRawPtr
[src]

pub fn dup(&self, order: Ordering) -> Option<T>[src]

Duplicate the inner pointer if it is set

Trait Implementations

impl<P: Debug> Debug for AtomSetOnce<P> where
    P: IntoRawPtr + FromRawPtr
[src]

Auto Trait Implementations

impl<P> !RefUnwindSafe for AtomSetOnce<P>

impl<P> Send for AtomSetOnce<P> where
    P: Send

impl<P> Sync for AtomSetOnce<P> where
    P: Send

impl<P> Unpin for AtomSetOnce<P> where
    P: Unpin

impl<P> UnwindSafe for AtomSetOnce<P> where
    P: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.