pub struct OngoingAsyncAction<T> {
strong: Rc<AsyncAction<T>>,
}Expand description
Helper type to keep track of ongoing async actions that can succeed in different functions.
This type can only have one strong reference and many weak references.
The strong reference should be dropped in the first function where the action succeeds. Then other functions can drop the weak references when they can’t be upgraded.
Fields§
§strong: Rc<AsyncAction<T>>Implementations§
Source§impl<T> OngoingAsyncAction<T>
impl<T> OngoingAsyncAction<T>
Sourcepub(crate) fn set(value: T) -> (Self, WeakOngoingAsyncAction<T>)
pub(crate) fn set(value: T) -> (Self, WeakOngoingAsyncAction<T>)
Create a new async action that sets the given value.
Returns both a strong and a weak reference.
Sourcepub(crate) fn remove() -> (Self, WeakOngoingAsyncAction<T>)
pub(crate) fn remove() -> (Self, WeakOngoingAsyncAction<T>)
Create a new async action that removes a value.
Returns both a strong and a weak reference.
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for OngoingAsyncAction<T>
impl<T> RefUnwindSafe for OngoingAsyncAction<T>where
T: RefUnwindSafe,
impl<T> !Send for OngoingAsyncAction<T>
impl<T> !Sync for OngoingAsyncAction<T>
impl<T> Unpin for OngoingAsyncAction<T>
impl<T> UnwindSafe for OngoingAsyncAction<T>where
T: RefUnwindSafe,
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, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
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