[][src]Enum bastion_executor::run_queue::Steal

#[must_use]pub enum Steal<T> {
    Empty,
    Success(T),
    Retry,
}

Possible outcomes of a steal operation.

Variants

Empty

The queue was empty at the time of stealing.

Success(T)

At least one task was successfully stolen.

Retry

The steal operation needs to be retried.

Implementations

impl<T> Steal<T>[src]

pub fn is_empty(&self) -> bool[src]

Returns true if the queue was empty at the time of stealing.

pub fn is_success(&self) -> bool[src]

Returns true if at least one task was stolen.

pub fn is_retry(&self) -> bool[src]

Returns true if the steal operation needs to be retried.

pub fn success(self) -> Option<T>[src]

Returns the result of the operation, if successful.

pub fn or_else<F>(self, f: F) -> Steal<T> where
    F: FnOnce() -> Steal<T>, 
[src]

If no task was stolen, attempts another steal operation.

Returns this steal result if it is Success. Otherwise, closure f is invoked and then:

  • If the second steal resulted in Success, it is returned.
  • If both steals were unsuccessful but any resulted in Retry, then Retry is returned.
  • If both resulted in None, then None is returned.

Trait Implementations

impl<T: Clone> Clone for Steal<T>[src]

impl<T: Copy> Copy for Steal<T>[src]

impl<T> Debug for Steal<T>[src]

impl<T: Eq> Eq for Steal<T>[src]

impl<T> FromIterator<Steal<T>> for Steal<T>[src]

fn from_iter<I>(iter: I) -> Steal<T> where
    I: IntoIterator<Item = Steal<T>>, 
[src]

Consumes items until a Success is found and returns it.

If no Success was found, but there was at least one Retry, then returns Retry. Otherwise, Empty is returned.

impl<T: PartialEq> PartialEq<Steal<T>> for Steal<T>[src]

impl<T> StructuralEq for Steal<T>[src]

impl<T> StructuralPartialEq for Steal<T>[src]

Auto Trait Implementations

impl<T> RefUnwindSafe for Steal<T> where
    T: RefUnwindSafe

impl<T> Send for Steal<T> where
    T: Send

impl<T> Sync for Steal<T> where
    T: Sync

impl<T> Unpin for Steal<T> where
    T: Unpin

impl<T> UnwindSafe for Steal<T> where
    T: UnwindSafe

Blanket Implementations

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

impl<T> AsAny for T where
    T: Any
[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> State for T where
    T: Send + Sync + 'static, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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.