Subscription

Trait Subscription 

Source
pub trait Subscription {
    // Required methods
    fn unsubscribe(self);
    fn is_closed(&self) -> bool;

    // Provided method
    fn unsubscribe_when_dropped(self) -> SubscriptionGuard<Self>
       where Self: Sized { ... }
}
Expand description

Subscription trait for managing observable subscriptions

Provides methods to cancel a subscription and check its status. Uses move semantics for unsubscribe to match the terminal nature of the operation, consistent with Observer’s error(self) and complete(self) methods.

Required Methods§

Source

fn unsubscribe(self)

Cancel the subscription (terminal operation, consumes self)

Source

fn is_closed(&self) -> bool

Check if the subscription is closed (completed or unsubscribed)

Provided Methods§

Source

fn unsubscribe_when_dropped(self) -> SubscriptionGuard<Self>
where Self: Sized,

Activates “RAII” behavior for this subscription. That means unsubscribe() will be called automatically as soon as the returned value goes out of scope.

Attention: If you don’t assign the return value to a variable, unsubscribe() is called immediately, which is probably not what you want!

Implementations on Foreign Types§

Source§

impl Subscription for ()

Unit subscription - always closed, does nothing

Source§

impl<P: Subscription> Subscription for Option<P>

Option subscription - None is closed, Some delegates to inner

Implementors§

Source§

impl Subscription for TaskHandle

Source§

impl Subscription for BoxedSubscription

Source§

impl Subscription for BoxedSubscriptionSend

Source§

impl<A, B> Subscription for EitherSubscription<A, B>

Source§

impl<A, B> Subscription for MutArc<EitherSubscription<A, B>>

Source§

impl<A, B> Subscription for MutRc<EitherSubscription<A, B>>

Source§

impl<F> Subscription for ClosureSubscription<F>
where F: FnOnce(),

Source§

impl<Item, O, Param, BoxedSub> Subscription for ThrottleState<Item, O, Param, BoxedSub>
where Param: ThrottleParam<Item>, BoxedSub: Subscription,

Source§

impl<P, InnerSub, ConnPtr, O> Subscription for RefCountSubscription<P, InnerSub, ConnPtr>
where P: RcDeref<Target = Subscribers<O>>, InnerSub: Subscription, ConnPtr: Subscription,

Source§

impl<P, O, Sch, Cell> Subscription for SubjectSubscription<P, Sch, Cell>
where P: RcDerefMut<Target = Subscribers<O>>, Sch: Scheduler<Task<RemoveState<P>>>, Cell: SharedCell<SubscriptionState>,

Source§

impl<P: Subscription> Subscription for MutArc<Option<P>>

Source§

impl<P: Subscription> Subscription for MutRc<Option<P>>

Source§

impl<S, Inner: Subscription + Send> Subscription for SharedCtx<Inner, S>
where S: Clone + Default,

Source§

impl<S, Inner: Subscription> Subscription for LocalCtx<Inner, S>
where S: Clone + Default,

Source§

impl<U1, U2> Subscription for TupleSubscription<U1, U2>
where U1: Subscription, U2: Subscription,

Source§

impl<U, H> Subscription for SourceWithHandle<U, H>

Source§

impl<U, P, F> Subscription for FinalizeSubscription<U, P>
where U: Subscription, P: RcDerefMut<Target = Option<F>>, F: FnOnce(),

Source§

impl<U, S, H> Subscription for SourceWithDynamicSubs<U, S>