Skip to main content

ObserverUpgradesToSelf

Trait ObserverUpgradesToSelf 

Source
pub trait ObserverUpgradesToSelf { }
Expand description

To mark types that upgrade to themselves when used as a destination in an Observables subscribe method. Usually subscribers fall into this category as they are already subscribers, so there’s no need for an upgrade. But there are a few regular observers too that chose to implement SubscriptionLike to implement a unique behavior. These observers take it upon themselves to manage their own closing logic, and maintain a teardown for added teardowns. For example, the PrintObserver does this to be able to print when it got unsubscribed, and the MockObserver to be able to track all notifications for assertions.

Implementations on Foreign Types§

Source§

impl<Destination> ObserverUpgradesToSelf for Arc<Mutex<Destination>>
where Destination: ObserverUpgradesToSelf + ?Sized,

Source§

impl<Destination> ObserverUpgradesToSelf for Arc<RwLock<Destination>>
where Destination: ObserverUpgradesToSelf + ?Sized,

Source§

impl<Destination> ObserverUpgradesToSelf for Weak<Mutex<Destination>>
where Destination: ObserverUpgradesToSelf + ?Sized,

Source§

impl<Destination> ObserverUpgradesToSelf for DematerializeSubscriber<Destination>
where Destination: Subscriber,

Source§

impl<Destination> ObserverUpgradesToSelf for EndWithSubscriber<Destination>
where Destination: Subscriber,

Source§

impl<Destination> ObserverUpgradesToSelf for ErrorBoundarySubscriber<Destination>
where Destination: Subscriber<InError = Infallible>,

Source§

impl<Destination> ObserverUpgradesToSelf for IdentitySubscriber<Destination>
where Destination: Subscriber,

Source§

impl<Destination> ObserverUpgradesToSelf for LiftOptionSubscriber<Destination>
where Destination: Subscriber,

Source§

impl<Destination> ObserverUpgradesToSelf for MapNeverBothSubscriber<Destination>
where Destination: Subscriber,

Source§

impl<Destination> ObserverUpgradesToSelf for MapNeverErrorSubscriber<Destination>
where Destination: Subscriber,

Source§

impl<Destination> ObserverUpgradesToSelf for MapNeverNextSubscriber<Destination>
where Destination: Subscriber,

Source§

impl<Destination> ObserverUpgradesToSelf for SkipSubscriber<Destination>
where Destination: Subscriber,

Source§

impl<Destination> ObserverUpgradesToSelf for TakeSubscriber<Destination>
where Destination: Subscriber,

Source§

impl<Destination, O1, O2> ObserverUpgradesToSelf for CombineChangesSubscriber<Destination, O1, O2>
where Destination: Subscriber<In = (Change<<O1 as ObservableOutput>::Out>, Change<<O2 as ObservableOutput>::Out>)>, O1: 'static + Observable, <O1 as ObservableOutput>::Out: Clone, <O1 as ObservableOutput>::OutError: Into<<Destination as ObserverInput>::InError>, O2: 'static + Observable, <O2 as ObservableOutput>::Out: Clone, <O2 as ObservableOutput>::OutError: Into<<Destination as ObserverInput>::InError>,

Source§

impl<Destination, O1, O2> ObserverUpgradesToSelf for CombineLatestSubscriber<Destination, O1, O2>
where Destination: Subscriber<In = (<O1 as ObservableOutput>::Out, <O2 as ObservableOutput>::Out)>, O1: 'static + Observable, <O1 as ObservableOutput>::Out: Clone, <O1 as ObservableOutput>::OutError: Into<<Destination as ObserverInput>::InError>, O2: 'static + Observable, <O2 as ObservableOutput>::Out: Clone, <O2 as ObservableOutput>::OutError: Into<<Destination as ObserverInput>::InError>,

Source§

impl<Destination, O1, O2> ObserverUpgradesToSelf for JoinSubscriber<Destination, O1, O2>
where Destination: Subscriber<In = (<O1 as ObservableOutput>::Out, <O2 as ObservableOutput>::Out)>, O1: 'static + Observable, <O1 as ObservableOutput>::Out: Clone, <O1 as ObservableOutput>::OutError: Into<<Destination as ObserverInput>::InError>, O2: 'static + Observable, <O2 as ObservableOutput>::Out: Clone, <O2 as ObservableOutput>::OutError: Into<<Destination as ObserverInput>::InError>,

Source§

impl<Destination, O1, O2> ObserverUpgradesToSelf for ZipSubscriber<Destination, O1, O2>
where Destination: Subscriber<In = (<O1 as ObservableOutput>::Out, <O2 as ObservableOutput>::Out)>, O1: 'static + Observable, <O1 as ObservableOutput>::Out: Clone, <O1 as ObservableOutput>::OutError: Into<<Destination as ObserverInput>::InError>, O2: 'static + Observable, <O2 as ObservableOutput>::Out: Clone, <O2 as ObservableOutput>::OutError: Into<<Destination as ObserverInput>::InError>,

Source§

impl<Destination, S> ObserverUpgradesToSelf for DebounceTimeSubscriber<Destination, S>
where Destination: 'static + Subscriber, S: 'static + Scheduler,

Source§

impl<Destination, S> ObserverUpgradesToSelf for DelaySubscriber<Destination, S>
where Destination: 'static + Subscriber, S: 'static + Scheduler,

Source§

impl<Destination, S> ObserverUpgradesToSelf for ObserveOnSubscriber<Destination, S>
where Destination: 'static + Subscriber, S: 'static + Scheduler,

Source§

impl<Destination, S> ObserverUpgradesToSelf for ThrottleTimeSubscriber<Destination, S>
where Destination: 'static + Subscriber, S: 'static + Scheduler,

Source§

impl<Filter, Destination> ObserverUpgradesToSelf for FilterSubscriber<Filter, Destination>
where Filter: for<'a> Fn(&'a <Destination as ObserverInput>::In, usize) -> bool, Destination: Subscriber,

Source§

impl<In, Destination> ObserverUpgradesToSelf for BufferCountSubscriber<In, Destination>
where In: Signal, Destination: Subscriber<In = Vec<In>>,

Source§

impl<In, Destination> ObserverUpgradesToSelf for EnumerateSubscriber<In, Destination>
where In: Signal, Destination: Subscriber<In = (In, usize)>,

Source§

impl<In, Destination> ObserverUpgradesToSelf for IsEmptySubscriber<In, Destination>
where In: Signal, Destination: Subscriber<In = bool>,

Source§

impl<In, Destination> ObserverUpgradesToSelf for PairwiseSubscriber<In, Destination>
where In: Signal + Clone, Destination: Subscriber<In = [In; 2]>,

Source§

impl<In, InError, Destination> ObserverUpgradesToSelf for CountSubscriber<In, InError, Destination>
where In: Signal, InError: Signal, Destination: Subscriber<In = usize, InError = InError>,

Source§

impl<In, InError, Destination> ObserverUpgradesToSelf for ElementAtSubscriber<In, InError, Destination>
where In: Signal, InError: Signal, Destination: Subscriber<In = In, InError = ElementAtOperatorError<InError>>,

Source§

impl<In, InError, Destination> ObserverUpgradesToSelf for IntoResultSubscriber<In, InError, Destination>
where In: Signal, InError: Signal, Destination: Subscriber<In = Result<In, InError>>,

Source§

impl<In, InError, Destination> ObserverUpgradesToSelf for MaterializeSubscriber<In, InError, Destination>
where In: Signal, InError: Signal, Destination: Subscriber<In = ObserverNotification<In, InError>, InError = Infallible>,

Source§

impl<In, InError, ErrorMapper, OutError, Destination> ObserverUpgradesToSelf for MapErrorSubscriber<In, InError, ErrorMapper, OutError, Destination>
where In: Signal, InError: Signal, ErrorMapper: FnOnce(InError) -> OutError + Send + Sync, OutError: Signal, Destination: Subscriber<In = In, InError = OutError>,

Source§

impl<In, InError, Fallback, Destination, S> ObserverUpgradesToSelf for FallbackWhenSilentSubscriber<In, InError, Fallback, Destination, S>
where In: Signal, InError: Signal, Fallback: 'static + Fn(<S as WithWorkInputOutput>::Tick, &mut <<S as WithWorkContextProvider>::WorkContextProvider as WorkContextProvider>::Item<'_>, usize) -> In + Send + Sync, Destination: 'static + Subscriber<In = In, InError = InError>, S: Scheduler,

Source§

impl<In, InError, HigherOrderSubscriber, ErrorMapper, Destination> ObserverUpgradesToSelf for HigherOrderAllSubscriber<In, InError, HigherOrderSubscriber, ErrorMapper, Destination>
where In: Signal + Observable, InError: Signal, HigherOrderSubscriber: HigherOrderSubscriberProvider, ErrorMapper: 'static + FnOnce(InError) -> <In as ObservableOutput>::OutError + Send + Sync, Destination: 'static + Subscriber<In = <In as ObservableOutput>::Out, InError = <In as ObservableOutput>::OutError>,

Source§

impl<In, InError, InnerObservable, ErrorMapper, Destination> ObserverUpgradesToSelf for CatchSubscriber<In, InError, InnerObservable, ErrorMapper, Destination>
where In: Signal, InError: Signal, InnerObservable: Observable<Out = In> + Signal, ErrorMapper: 'static + FnOnce(InError) -> InnerObservable + Send + Sync, Destination: 'static + Subscriber<In = In, InError = <InnerObservable as ObservableOutput>::OutError>,

Source§

impl<In, InError, Mapper, InnerObservable, HigherOrderSubscriber, ErrorMapper, Destination> ObserverUpgradesToSelf for HigherOrderMapSubscriber<In, InError, Mapper, InnerObservable, HigherOrderSubscriber, ErrorMapper, Destination>
where In: Signal, InError: Signal, Mapper: FnMut(In) -> InnerObservable, InnerObservable: Observable + Signal, HigherOrderSubscriber: HigherOrderSubscriberProvider, ErrorMapper: 'static + FnOnce(InError) -> <InnerObservable as ObservableOutput>::OutError + Send + Sync, Destination: 'static + Subscriber<In = <InnerObservable as ObservableOutput>::Out, InError = <InnerObservable as ObservableOutput>::OutError>,

Source§

impl<In, InError, Mapper, Out, Destination> ObserverUpgradesToSelf for MapSubscriber<In, InError, Mapper, Out, Destination>
where In: Signal, InError: Signal, Mapper: Fn(In) -> Out + Send + Sync, Out: Signal, Destination: Subscriber<In = Out, InError = InError>,

Source§

impl<In, InError, OnNext, Destination> ObserverUpgradesToSelf for TapNextSubscriber<In, InError, OnNext, Destination>
where OnNext: 'static + FnMut(&In), Destination: Subscriber<In = In, InError = InError>, In: Signal, InError: Signal,

Source§

impl<In, InError, Out, OutError, Destination> ObserverUpgradesToSelf for MapIntoSubscriber<In, InError, Out, OutError, Destination>
where In: Signal + Into<Out>, InError: Signal + Into<OutError>, Out: Signal, OutError: Signal, Destination: Subscriber<In = Out, InError = OutError>,

Source§

impl<In, InError, P, Destination> ObserverUpgradesToSelf for FindIndexSubscriber<In, InError, P, Destination>
where In: Signal, InError: Signal, P: Fn(&In) -> bool, Destination: Subscriber<In = usize, InError = FindIndexOperatorError<InError>>,

Source§

impl<In, InError, Reducer, Out, Destination> ObserverUpgradesToSelf for ReduceSubscriber<In, InError, Reducer, Out, Destination>
where In: Signal, InError: Signal, Reducer: Fn(&Out, In) -> Out + Send + Sync, Out: Signal + Clone, Destination: Subscriber<In = Out, InError = InError>,

Source§

impl<In, InError, Reducer, Out, Destination> ObserverUpgradesToSelf for ScanSubscriber<In, InError, Reducer, Out, Destination>
where In: Signal, InError: Signal, Reducer: Fn(&Out, In) -> Out + Send + Sync, Out: Signal + Clone, Destination: Subscriber<In = Out, InError = InError>,

Source§

impl<In, InError, S> ObserverUpgradesToSelf for Box<S>
where In: Signal, InError: Signal, S: Subscriber<In = In, InError = InError> + Send + Sync + ?Sized,

Source§

impl<In, InnerObservable, Destination> ObserverUpgradesToSelf for WithLatestFromSubscriber<In, InnerObservable, Destination>
where In: Signal, InnerObservable: Observable, <InnerObservable as ObservableOutput>::Out: Clone, Destination: 'static + Subscriber<In = (In, <InnerObservable as ObservableOutput>::Out), InError = <InnerObservable as ObservableOutput>::OutError>,

Source§

impl<InError, Destination> ObserverUpgradesToSelf for FirstSubscriber<InError, Destination>
where InError: Signal, Destination: Subscriber<InError = FirstOperatorError<InError>>,

Source§

impl<InError, Destination, S> ObserverUpgradesToSelf for AdsrSubscriber<InError, Destination, S>
where InError: Signal, Destination: 'static + Subscriber<In = AdsrSignal, InError = InError>, S: Scheduler,

Source§

impl<InError, P, Destination> ObserverUpgradesToSelf for FindSubscriber<InError, P, Destination>
where InError: Signal, P: Fn(&<Destination as ObserverInput>::In) -> bool, Destination: Subscriber<InError = FindOperatorError<InError>>,

Source§

impl<Inner, Destination> ObserverUpgradesToSelf for CompositeSubscriber<Inner, Destination>
where Inner: Subscriber, Destination: RxObserver,

Source§

impl<InnerObservable, Destination> ObserverUpgradesToSelf for ConcurrentSubscriber<InnerObservable, Destination>
where InnerObservable: Observable<Out = <Destination as ObserverInput>::In, OutError = <Destination as ObserverInput>::InError> + Signal, Destination: 'static + Subscriber,

Source§

impl<InnerObservable, Destination> ObserverUpgradesToSelf for ExhaustSubscriber<InnerObservable, Destination>
where InnerObservable: Observable + Signal, Destination: 'static + Subscriber<In = <InnerObservable as ObservableOutput>::Out, InError = <InnerObservable as ObservableOutput>::OutError>,

Source§

impl<InnerObservable, Destination> ObserverUpgradesToSelf for SwitchSubscriber<InnerObservable, Destination>
where InnerObservable: Observable + Signal, Destination: 'static + Subscriber<In = <InnerObservable as ObservableOutput>::Out, InError = <InnerObservable as ObservableOutput>::OutError>,

Source§

impl<OnNext, Destination> ObserverUpgradesToSelf for OnNextSubscriber<OnNext, Destination>
where OnNext: 'static + FnMut(&<Destination as ObserverInput>::In, &mut dyn Subscriber<In = <Destination as ObserverInput>::In, InError = <Destination as ObserverInput>::InError>) -> bool + Send + Sync, Destination: Subscriber,

Source§

impl<ResultIn, ResultInError, InError, Destination> ObserverUpgradesToSelf for LiftResultSubscriber<ResultIn, ResultInError, InError, Destination>
where ResultIn: Signal, ResultInError: Signal, InError: Signal, Destination: Subscriber<In = ResultIn, InError = ResultInError>,

Source§

impl<State, OnComplete, OnUnsubscribe, Destination> ObserverUpgradesToSelf for HigherOrderInnerSubscriber<State, OnComplete, OnUnsubscribe, Destination>
where State: HigherOrderSubscriberStateConditions, OnComplete: FnOnce(usize), OnUnsubscribe: FnOnce(usize), Destination: 'static + Subscriber,

Source§

impl<TapDestination, Destination> ObserverUpgradesToSelf for TapSubscriber<TapDestination, Destination>
where TapDestination: 'static + RxObserver<In = <Destination as ObserverInput>::In, InError = <Destination as ObserverInput>::InError> + Send + Sync, Destination: Subscriber,

Source§

impl<VariantSelector, Destination, O1, O2> ObserverUpgradesToSelf for EitherSubscriber2<VariantSelector, Destination, O1, O2>
where VariantSelector: EitherNotificationSelector2<O1, O2>, Destination: Subscriber<In = EitherObservableNotification2<O1, O2>>, O1: Observable, <O1 as ObservableOutput>::OutError: Into<<Destination as ObserverInput>::InError>, O2: Observable, <O2 as ObservableOutput>::OutError: Into<<Destination as ObserverInput>::InError>,

Implementors§

Source§

impl<Destination> ObserverUpgradesToSelf for ObserverSubscriber<Destination>
where Destination: RxObserver,

Source§

impl<Destination> ObserverUpgradesToSelf for SharedSubscriber<Destination>
where Destination: Subscriber + UpgradeableObserver + Send + Sync,

Source§

impl<In, InError> ObserverUpgradesToSelf for PrintObserver<In, InError>
where In: Signal + Debug, InError: Signal + Debug,

Source§

impl<In, InError> ObserverUpgradesToSelf for ErasedSubscriber<In, InError>
where In: Signal, InError: Signal,

Source§

impl<InnerSubscriber, Destination> ObserverUpgradesToSelf for OptionSubscriber<InnerSubscriber, Destination>
where InnerSubscriber: Subscriber, Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,