Struct fractal::utils::OngoingAsyncAction
source · 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 fn set(value: T) -> (Self, WeakOngoingAsyncAction<T>)
pub 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 fn remove() -> (Self, WeakOngoingAsyncAction<T>)
pub fn remove() -> (Self, WeakOngoingAsyncAction<T>)
Create a new async action that removes a value.
Returns both a strong and a weak reference.
sourcepub fn downgrade(&self) -> WeakOngoingAsyncAction<T>
pub fn downgrade(&self) -> WeakOngoingAsyncAction<T>
Create a new weak reference to this async action.
sourcepub fn action(&self) -> &AsyncAction<T>
pub fn action(&self) -> &AsyncAction<T>
The inner action.
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