Struct kitsune_p2p_types::tx2::tx2_utils::Active
source · pub struct Active(/* private fields */);
Expand description
Active tracking helper for related items. This facilitates e.g. an endpoint with sub connections. The endpoint can close, closing all connections. Or, individual connections can close, without closing the endpoint.
Implementations§
source§impl Active
impl Active
sourcepub fn mix(&self, oth: &Self) -> Self
pub fn mix(&self, oth: &Self) -> Self
Mix two active trackers to gether. The result will be inactive if either parent is inactive.
sourcepub fn register_kill_cb<F>(&self, cb: F)
pub fn register_kill_cb<F>(&self, cb: F)
Register a callback to be invoked on kill. Beware the cb may be invoked multiple times if this Active is mixed.
sourcepub fn is_active(&self) -> bool
pub fn is_active(&self) -> bool
If any of the mixed trackers in this instance are not active, this fn will return false.
sourcepub fn fut<'a, 'b, R, F>(
&'a self,
f: F
) -> impl Future<Output = KitsuneResult<R>> + 'b + Send
pub fn fut<'a, 'b, R, F>( &'a self, f: F ) -> impl Future<Output = KitsuneResult<R>> + 'b + Send
Wrap a future such that if any of the sub-trackers within this active tracker instance become inactive before the future resolve, resolve with a Err::Closed result.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Active
impl !RefUnwindSafe for Active
impl Send for Active
impl Sync for Active
impl Unpin for Active
impl !UnwindSafe for Active
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> 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> 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> Pointable for T
impl<T> Pointable for T
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.