pub enum Steal<T> {
Empty,
Success(T),
Retry,
}Expand description
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§
Source§impl<T> Steal<T>
impl<T> Steal<T>
Sourcepub fn is_success(&self) -> bool
pub fn is_success(&self) -> bool
Returns true if at least one task was stolen.
Sourcepub fn or_else<F>(self, f: F) -> Steal<T>
pub fn or_else<F>(self, f: F) -> Steal<T>
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, thenRetryis returned. - If both resulted in
None, thenNoneis returned.
Trait Implementations§
Source§impl<T> FromIterator<Steal<T>> for Steal<T>
impl<T> FromIterator<Steal<T>> for Steal<T>
impl<T: Copy> Copy for Steal<T>
impl<T: Eq> Eq for Steal<T>
impl<T> StructuralPartialEq for Steal<T>
Auto Trait Implementations§
impl<T> Freeze for Steal<T>where
T: Freeze,
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§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more