Skip to main content

ComposableOperator

Trait ComposableOperator 

Source
pub trait ComposableOperator: ObserverInput + ObservableOutput {
    type Subscriber<Destination: 'static + Subscriber<In = Self::Out, InError = Self::OutError> + Send + Sync>: 'static + Subscriber<In = Self::In, InError = Self::InError> + Send + Sync;

    // Required method
    fn operator_subscribe<Destination>(
        &mut self,
        destination: Destination,
    ) -> Self::Subscriber<Destination>
       where Destination: 'static + Subscriber<In = Self::Out, InError = Self::OutError> + Send + Sync;
}
Expand description

§ComposableOperator

Composable Operators are a subset of regular Operators. Unlike - for example - the retry operator, that (as the name suggests) retries subscription to the source, many other operators do not interact with their source observable beyond just subscribing to them once.

They simply subscribe to the source once, and all they do is:

  • Wrap the destination into a subscriber on subscribe

  • And/Or Interact with the destination on subscribe

    The start_with and finalize operators don’t create anything new on subscribe, they only interact with the destination subscriber.

But they don’t know anything about who the source observable is.

This is what makes them composable, allowing the creation of new ComposableOperators out of existing ones. As they are all just arrangements of nested functions that apply layers of behavior onto a subscriber.

§Pipe

The Pipe observable, together with ComposeOperator, makes all ComposableOperators automatically impl Operator too.

Required Associated Types§

Source

type Subscriber<Destination: 'static + Subscriber<In = Self::Out, InError = Self::OutError> + Send + Sync>: 'static + Subscriber<In = Self::In, InError = Self::InError> + Send + Sync

Required Methods§

Source

fn operator_subscribe<Destination>( &mut self, destination: Destination, ) -> Self::Subscriber<Destination>
where Destination: 'static + Subscriber<In = Self::Out, InError = Self::OutError> + Send + Sync,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<In, InError, Op> ComposableOperator for Option<Op>
where Op: ComposableOperator<In = In, InError = InError, Out = In, OutError = InError>, In: Signal, InError: Signal,

[Operator]s with the same outputs as its inputs can be made optional.

If upon subscription, the operator was Some the subscription will be created with the operator, if it’s None, values will just pass through.

Source§

type Subscriber<Destination: 'static + Subscriber<In = <Option<Op> as ObservableOutput>::Out, InError = <Option<Op> as ObservableOutput>::OutError> + Send + Sync> = OptionSubscriber<<Op as ComposableOperator>::Subscriber<Destination>, Destination> where <Op as ComposableOperator>::Subscriber<Destination>: Subscriber

Source§

fn operator_subscribe<Destination>( &mut self, destination: Destination, ) -> <Option<Op> as ComposableOperator>::Subscriber<Destination>
where Destination: Subscriber<In = <Option<Op> as ObservableOutput>::Out, InError = <Option<Op> as ObservableOutput>::OutError> + Send + Sync,

Implementors§

Source§

impl<In> ComposableOperator for ErrorBoundaryOperator<In>
where In: Signal,

Source§

impl<In, InError> ComposableOperator for BufferCountOperator<In, InError>
where In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <BufferCountOperator<In, InError> as ObservableOutput>::Out, InError = <BufferCountOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = BufferCountSubscriber<In, Destination>

Source§

impl<In, InError> ComposableOperator for CountOperator<In, InError>
where In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <CountOperator<In, InError> as ObservableOutput>::Out, InError = <CountOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = CountSubscriber<In, InError, Destination>

Source§

impl<In, InError> ComposableOperator for DematerializeOperator<In, InError>
where In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <DematerializeOperator<In, InError> as ObservableOutput>::Out, InError = <DematerializeOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = DematerializeSubscriber<Destination>

Source§

impl<In, InError> ComposableOperator for ElementAtOperator<In, InError>
where In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <ElementAtOperator<In, InError> as ObservableOutput>::Out, InError = <ElementAtOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = ElementAtSubscriber<In, InError, Destination>

Source§

impl<In, InError> ComposableOperator for EndWithOperator<In, InError>
where In: Signal + Clone, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <EndWithOperator<In, InError> as ObservableOutput>::Out, InError = <EndWithOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = EndWithSubscriber<Destination>

Source§

impl<In, InError> ComposableOperator for EnumerateOperator<In, InError>
where In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <EnumerateOperator<In, InError> as ObservableOutput>::Out, InError = <EnumerateOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = EnumerateSubscriber<In, Destination>

Source§

impl<In, InError> ComposableOperator for FirstOperator<In, InError>
where In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <FirstOperator<In, InError> as ObservableOutput>::Out, InError = <FirstOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = FirstSubscriber<InError, Destination>

Source§

impl<In, InError> ComposableOperator for IdentityOperator<In, InError>
where In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <IdentityOperator<In, InError> as ObservableOutput>::Out, InError = <IdentityOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = IdentitySubscriber<Destination>

Source§

impl<In, InError> ComposableOperator for IntoResultOperator<In, InError>
where In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <IntoResultOperator<In, InError> as ObservableOutput>::Out, InError = <IntoResultOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = IntoResultSubscriber<In, InError, Destination>

Source§

impl<In, InError> ComposableOperator for IsEmptyOperator<In, InError>
where In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <IsEmptyOperator<In, InError> as ObservableOutput>::Out, InError = <IsEmptyOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = IsEmptySubscriber<In, Destination>

Source§

impl<In, InError> ComposableOperator for LiftOptionOperator<In, InError>
where In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <LiftOptionOperator<In, InError> as ObservableOutput>::Out, InError = <LiftOptionOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = LiftOptionSubscriber<Destination>

Source§

impl<In, InError> ComposableOperator for MaterializeOperator<In, InError>
where In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <MaterializeOperator<In, InError> as ObservableOutput>::Out, InError = <MaterializeOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = MaterializeSubscriber<In, InError, Destination>

Source§

impl<In, InError> ComposableOperator for PairwiseOperator<In, InError>
where In: Signal + Clone, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <PairwiseOperator<In, InError> as ObservableOutput>::Out, InError = <PairwiseOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = PairwiseSubscriber<In, Destination>

Source§

impl<In, InError> ComposableOperator for SkipOperator<In, InError>
where In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <SkipOperator<In, InError> as ObservableOutput>::Out, InError = <SkipOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = SkipSubscriber<Destination>

Source§

impl<In, InError> ComposableOperator for StartWithOperator<In, InError>
where In: Signal + Clone, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <StartWithOperator<In, InError> as ObservableOutput>::Out, InError = <StartWithOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = Destination

Source§

impl<In, InError> ComposableOperator for TakeOperator<In, InError>
where In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <TakeOperator<In, InError> as ObservableOutput>::Out, InError = <TakeOperator<In, InError> as ObservableOutput>::OutError> + Send + Sync> = TakeSubscriber<Destination>

Source§

impl<In, InError, Callback> ComposableOperator for FinalizeOperator<In, InError, Callback>
where In: Signal, InError: Signal, Callback: 'static + Clone + FnOnce() + Send + Sync,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <FinalizeOperator<In, InError, Callback> as ObservableOutput>::Out, InError = <FinalizeOperator<In, InError, Callback> as ObservableOutput>::OutError> + Send + Sync> = Destination

Source§

impl<In, InError, ErrorMapper> ComposableOperator for ConcatAllOperator<In, InError, ErrorMapper>
where In: Observable + Signal, InError: Signal, ErrorMapper: 'static + FnOnce(InError) -> <In as ObservableOutput>::OutError + Clone + Send + Sync,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <ConcatAllOperator<In, InError, ErrorMapper> as ObservableOutput>::Out, InError = <ConcatAllOperator<In, InError, ErrorMapper> as ObservableOutput>::OutError> + Send + Sync> = HigherOrderAllSubscriber<In, InError, ConcurrentSubscriberProvider, ErrorMapper, Destination>

Source§

impl<In, InError, ErrorMapper> ComposableOperator for ExhaustAllOperator<In, InError, ErrorMapper>
where ErrorMapper: 'static + FnOnce(InError) -> <In as ObservableOutput>::OutError + Send + Sync + Clone, In: Observable + Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <ExhaustAllOperator<In, InError, ErrorMapper> as ObservableOutput>::Out, InError = <ExhaustAllOperator<In, InError, ErrorMapper> as ObservableOutput>::OutError> + Send + Sync> = HigherOrderAllSubscriber<In, InError, ExhaustSubscriberProvider, ErrorMapper, Destination>

Source§

impl<In, InError, ErrorMapper> ComposableOperator for MergeAllOperator<In, InError, ErrorMapper>
where In: Observable + Signal, InError: Signal, ErrorMapper: 'static + FnOnce(InError) -> <In as ObservableOutput>::OutError + Clone + Send + Sync,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <MergeAllOperator<In, InError, ErrorMapper> as ObservableOutput>::Out, InError = <MergeAllOperator<In, InError, ErrorMapper> as ObservableOutput>::OutError> + Send + Sync> = HigherOrderAllSubscriber<In, InError, ConcurrentSubscriberProvider, ErrorMapper, Destination>

Source§

impl<In, InError, ErrorMapper> ComposableOperator for SwitchAllOperator<In, InError, ErrorMapper>
where In: Observable + Signal, InError: Signal, ErrorMapper: 'static + FnOnce(InError) -> <In as ObservableOutput>::OutError + Clone + Send + Sync,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <SwitchAllOperator<In, InError, ErrorMapper> as ObservableOutput>::Out, InError = <SwitchAllOperator<In, InError, ErrorMapper> as ObservableOutput>::OutError> + Send + Sync> = HigherOrderAllSubscriber<In, InError, SwitchSubscriberProvider, ErrorMapper, Destination>

Source§

impl<In, InError, ErrorMapper, InnerObservable> ComposableOperator for CatchOperator<In, InError, ErrorMapper, InnerObservable>
where In: Signal, InError: Signal, ErrorMapper: 'static + FnOnce(InError) -> InnerObservable + Clone + Send + Sync, InnerObservable: Observable<Out = In> + Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <CatchOperator<In, InError, ErrorMapper, InnerObservable> as ObservableOutput>::Out, InError = <CatchOperator<In, InError, ErrorMapper, InnerObservable> as ObservableOutput>::OutError> + Send + Sync> = CatchSubscriber<In, InError, InnerObservable, ErrorMapper, Destination>

Source§

impl<In, InError, ErrorMapper, OutError> ComposableOperator for MapErrorOperator<In, InError, ErrorMapper, OutError>
where In: Signal, InError: Signal, ErrorMapper: 'static + FnOnce(InError) -> OutError + Clone + Send + Sync, OutError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <MapErrorOperator<In, InError, ErrorMapper, OutError> as ObservableOutput>::Out, InError = <MapErrorOperator<In, InError, ErrorMapper, OutError> as ObservableOutput>::OutError> + Send + Sync> = MapErrorSubscriber<In, InError, ErrorMapper, OutError, Destination>

Source§

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

Source§

type Subscriber<Destination: 'static + Subscriber<In = <FallbackWhenSilentOperator<In, InError, Fallback, S> as ObservableOutput>::Out, InError = <FallbackWhenSilentOperator<In, InError, Fallback, S> as ObservableOutput>::OutError> + Send + Sync> = FallbackWhenSilentSubscriber<In, InError, Fallback, Destination, S>

Source§

impl<In, InError, Filter> ComposableOperator for FilterOperator<In, InError, Filter>
where In: Signal, InError: Signal, Filter: 'static + for<'a> Fn(&'a In, usize) -> bool + Clone + Send + Sync,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <FilterOperator<In, InError, Filter> as ObservableOutput>::Out, InError = <FilterOperator<In, InError, Filter> as ObservableOutput>::OutError> + Send + Sync> = FilterSubscriber<Filter, Destination>

Source§

impl<In, InError, Mapper, ErrorMapper, InnerObservable> ComposableOperator for ConcatMapOperator<In, InError, Mapper, ErrorMapper, InnerObservable>
where In: Signal, InError: Signal, Mapper: 'static + FnMut(In) -> InnerObservable + Clone + Send + Sync, ErrorMapper: 'static + FnOnce(InError) -> <InnerObservable as ObservableOutput>::OutError + Clone + Send + Sync, InnerObservable: Observable + Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <ConcatMapOperator<In, InError, Mapper, ErrorMapper, InnerObservable> as ObservableOutput>::Out, InError = <ConcatMapOperator<In, InError, Mapper, ErrorMapper, InnerObservable> as ObservableOutput>::OutError> + Send + Sync> = HigherOrderMapSubscriber<In, InError, Mapper, InnerObservable, ConcurrentSubscriberProvider, ErrorMapper, Destination>

Source§

impl<In, InError, Mapper, ErrorMapper, InnerObservable> ComposableOperator for ExhaustMapOperator<In, InError, Mapper, ErrorMapper, InnerObservable>
where In: Signal, InError: Signal + Into<<InnerObservable as ObservableOutput>::OutError>, Mapper: 'static + FnMut(In) -> InnerObservable + Clone + Send + Sync, ErrorMapper: 'static + FnOnce(InError) -> <InnerObservable as ObservableOutput>::OutError + Clone + Send + Sync, InnerObservable: Observable + Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <ExhaustMapOperator<In, InError, Mapper, ErrorMapper, InnerObservable> as ObservableOutput>::Out, InError = <ExhaustMapOperator<In, InError, Mapper, ErrorMapper, InnerObservable> as ObservableOutput>::OutError> + Send + Sync> = HigherOrderMapSubscriber<In, InError, Mapper, InnerObservable, ExhaustSubscriberProvider, ErrorMapper, Destination>

Source§

impl<In, InError, Mapper, ErrorMapper, InnerObservable> ComposableOperator for MergeMapOperator<In, InError, Mapper, ErrorMapper, InnerObservable>
where In: Signal, InError: Signal, Mapper: 'static + FnMut(In) -> InnerObservable + Clone + Send + Sync, ErrorMapper: 'static + FnOnce(InError) -> <InnerObservable as ObservableOutput>::OutError + Clone + Send + Sync, InnerObservable: Observable + Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <MergeMapOperator<In, InError, Mapper, ErrorMapper, InnerObservable> as ObservableOutput>::Out, InError = <MergeMapOperator<In, InError, Mapper, ErrorMapper, InnerObservable> as ObservableOutput>::OutError> + Send + Sync> = HigherOrderMapSubscriber<In, InError, Mapper, InnerObservable, ConcurrentSubscriberProvider, ErrorMapper, Destination>

Source§

impl<In, InError, Mapper, ErrorMapper, InnerObservable> ComposableOperator for SwitchMapOperator<In, InError, Mapper, ErrorMapper, InnerObservable>
where In: Signal, InError: Signal, Mapper: 'static + FnMut(In) -> InnerObservable + Clone + Send + Sync, ErrorMapper: 'static + FnOnce(InError) -> <InnerObservable as ObservableOutput>::OutError + Clone + Send + Sync, InnerObservable: Observable + Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <SwitchMapOperator<In, InError, Mapper, ErrorMapper, InnerObservable> as ObservableOutput>::Out, InError = <SwitchMapOperator<In, InError, Mapper, ErrorMapper, InnerObservable> as ObservableOutput>::OutError> + Send + Sync> = HigherOrderMapSubscriber<In, InError, Mapper, InnerObservable, SwitchSubscriberProvider, ErrorMapper, Destination>

Source§

impl<In, InError, Mapper, Out> ComposableOperator for FilterMapOperator<In, InError, Mapper, Out>
where In: Signal, InError: Signal, Mapper: 'static + Fn(In) -> Option<Out> + Clone + Send + Sync, Out: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <FilterMapOperator<In, InError, Mapper, Out> as ObservableOutput>::Out, InError = <FilterMapOperator<In, InError, Mapper, Out> as ObservableOutput>::OutError> + Send + Sync> = CompositeSubscriber<MapSubscriber<In, InError, Mapper, Option<Out>, LiftOptionSubscriber<Destination>>, Destination>

Source§

impl<In, InError, Mapper, Out> ComposableOperator for MapOperator<In, InError, Mapper, Out>
where In: Signal, InError: Signal, Mapper: 'static + Fn(In) -> Out + Clone + Send + Sync, Out: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <MapOperator<In, InError, Mapper, Out> as ObservableOutput>::Out, InError = <MapOperator<In, InError, Mapper, Out> as ObservableOutput>::OutError> + Send + Sync> = MapSubscriber<In, InError, Mapper, Out, Destination>

Source§

impl<In, InError, OnNext> ComposableOperator for TapNextOperator<In, InError, OnNext>
where In: Signal, InError: Signal, OnNext: 'static + FnMut(&In) + Clone + Send + Sync,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <TapNextOperator<In, InError, OnNext> as ObservableOutput>::Out, InError = <TapNextOperator<In, InError, OnNext> as ObservableOutput>::OutError> + Send + Sync> = TapNextSubscriber<In, InError, OnNext, Destination>

Source§

impl<In, InError, Out, OutError> ComposableOperator for MapIntoOperator<In, InError, Out, OutError>
where In: Signal + Into<Out>, InError: Signal + Into<OutError>, Out: Signal, OutError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <MapIntoOperator<In, InError, Out, OutError> as ObservableOutput>::Out, InError = <MapIntoOperator<In, InError, Out, OutError> as ObservableOutput>::OutError> + Send + Sync> = MapIntoSubscriber<In, InError, Out, OutError, Destination>

Source§

impl<In, InError, P> ComposableOperator for FindIndexOperator<In, InError, P>
where P: 'static + Fn(&In) -> bool + Clone + Send + Sync, In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <FindIndexOperator<In, InError, P> as ObservableOutput>::Out, InError = <FindIndexOperator<In, InError, P> as ObservableOutput>::OutError> + Send + Sync> = FindIndexSubscriber<In, InError, P, Destination>

Source§

impl<In, InError, P> ComposableOperator for FindOperator<In, InError, P>
where P: 'static + Fn(&In) -> bool + Clone + Send + Sync, In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <FindOperator<In, InError, P> as ObservableOutput>::Out, InError = <FindOperator<In, InError, P> as ObservableOutput>::OutError> + Send + Sync> = FindSubscriber<InError, P, Destination>

Source§

impl<In, InError, Reducer, Out> ComposableOperator for ReduceOperator<In, InError, Reducer, Out>
where In: Signal, InError: Signal, Reducer: 'static + Fn(&Out, In) -> Out + Clone + Send + Sync, Out: Signal + Clone,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <ReduceOperator<In, InError, Reducer, Out> as ObservableOutput>::Out, InError = <ReduceOperator<In, InError, Reducer, Out> as ObservableOutput>::OutError> + Send + Sync> = ReduceSubscriber<In, InError, Reducer, Out, Destination>

Source§

impl<In, InError, Reducer, Out> ComposableOperator for ScanOperator<In, InError, Reducer, Out>
where In: Signal, InError: Signal, Reducer: 'static + Fn(&Out, In) -> Out + Clone + Send + Sync, Out: Signal + Clone,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <ScanOperator<In, InError, Reducer, Out> as ObservableOutput>::Out, InError = <ScanOperator<In, InError, Reducer, Out> as ObservableOutput>::OutError> + Send + Sync> = ScanSubscriber<In, InError, Reducer, Out, Destination>

Source§

impl<In, InError, S> ComposableOperator for DebounceTimeOperator<In, InError, S>
where In: Signal, InError: Signal, S: 'static + Scheduler + Send + Sync,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <DebounceTimeOperator<In, InError, S> as ObservableOutput>::Out, InError = <DebounceTimeOperator<In, InError, S> as ObservableOutput>::OutError> + Send + Sync> = DebounceTimeSubscriber<Destination, S>

Source§

impl<In, InError, S> ComposableOperator for DelayOperator<In, InError, S>
where In: Signal, InError: Signal, S: 'static + Scheduler + Send + Sync,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <DelayOperator<In, InError, S> as ObservableOutput>::Out, InError = <DelayOperator<In, InError, S> as ObservableOutput>::OutError> + Send + Sync> = DelaySubscriber<Destination, S>

Source§

impl<In, InError, S> ComposableOperator for ObserveOnOperator<In, InError, S>
where In: Signal, InError: Signal, S: 'static + Scheduler + Send + Sync,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <ObserveOnOperator<In, InError, S> as ObservableOutput>::Out, InError = <ObserveOnOperator<In, InError, S> as ObservableOutput>::OutError> + Send + Sync> = ObserveOnSubscriber<Destination, S>

Source§

impl<In, InError, S> ComposableOperator for ThrottleTimeOperator<In, InError, S>
where In: Signal, InError: Signal, S: 'static + Scheduler + Send + Sync,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <ThrottleTimeOperator<In, InError, S> as ObservableOutput>::Out, InError = <ThrottleTimeOperator<In, InError, S> as ObservableOutput>::OutError> + Send + Sync> = ThrottleTimeSubscriber<Destination, S>

Source§

impl<In, OutError> ComposableOperator for MapNeverErrorOperator<In, OutError>
where In: Signal, OutError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <MapNeverErrorOperator<In, OutError> as ObservableOutput>::Out, InError = <MapNeverErrorOperator<In, OutError> as ObservableOutput>::OutError> + Send + Sync> = MapNeverErrorSubscriber<Destination>

Source§

impl<InError, S> ComposableOperator for AdsrOperator<InError, S>
where InError: Signal, S: 'static + Scheduler,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <AdsrOperator<InError, S> as ObservableOutput>::Out, InError = <AdsrOperator<InError, S> as ObservableOutput>::OutError> + Send + Sync> = AdsrSubscriber<InError, Destination, S>

Source§

impl<InnerObservable, In, InError> ComposableOperator for WithLatestFromOperator<InnerObservable, In, InError>
where InnerObservable: 'static + Observable<OutError = InError>, <InnerObservable as ObservableOutput>::Out: Clone, In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <WithLatestFromOperator<InnerObservable, In, InError> as ObservableOutput>::Out, InError = <WithLatestFromOperator<InnerObservable, In, InError> as ObservableOutput>::OutError> + Send + Sync> = WithLatestFromSubscriber<In, InnerObservable, Destination>

Source§

impl<OnNext, In, InError> ComposableOperator for OnNextOperator<OnNext, In, InError>
where OnNext: 'static + FnMut(&In, &mut dyn Subscriber<In = In, InError = InError>) -> bool + Send + Sync + Clone, In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <OnNextOperator<OnNext, In, InError> as ObservableOutput>::Out, InError = <OnNextOperator<OnNext, In, InError> as ObservableOutput>::OutError> + Send + Sync> = OnNextSubscriber<OnNext, Destination>

Source§

impl<OnSubscribe, In, InError> ComposableOperator for OnSubscribeOperator<OnSubscribe, In, InError>
where OnSubscribe: 'static + FnMut(&mut dyn Subscriber<In = In, InError = InError>) + Send + Sync, In: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <OnSubscribeOperator<OnSubscribe, In, InError> as ObservableOutput>::Out, InError = <OnSubscribeOperator<OnSubscribe, In, InError> as ObservableOutput>::OutError> + Send + Sync> = Destination

Source§

impl<Op> ComposableOperator for ComposeOperator<Op>
where Op: 'static + ComposableOperator,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <ComposeOperator<Op> as ObservableOutput>::Out, InError = <ComposeOperator<Op> as ObservableOutput>::OutError> + Send + Sync> = <Op as ComposableOperator>::Subscriber<Destination>

Source§

impl<Out, InError> ComposableOperator for MapNeverNextOperator<Out, InError>
where InError: Signal, Out: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <MapNeverNextOperator<Out, InError> as ObservableOutput>::Out, InError = <MapNeverNextOperator<Out, InError> as ObservableOutput>::OutError> + Send + Sync> = MapNeverNextSubscriber<Destination>

Source§

impl<Out, OutError> ComposableOperator for MapNeverBothOperator<Out, OutError>
where Out: Signal, OutError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <MapNeverBothOperator<Out, OutError> as ObservableOutput>::Out, InError = <MapNeverBothOperator<Out, OutError> as ObservableOutput>::OutError> + Send + Sync> = MapNeverBothSubscriber<Destination>

Source§

impl<PrevOp, Op> ComposableOperator for CompositeOperator<PrevOp, Op>
where PrevOp: ComposableOperator<Out = <Op as ObserverInput>::In, OutError = <Op as ObserverInput>::InError>, Op: ComposableOperator,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <CompositeOperator<PrevOp, Op> as ObservableOutput>::Out, InError = <CompositeOperator<PrevOp, Op> as ObservableOutput>::OutError> + Send + Sync> = CompositeSubscriber<<PrevOp as ComposableOperator>::Subscriber<<Op as ComposableOperator>::Subscriber<Destination>>, Destination>

Source§

impl<ResultIn, ResultInError, InError> ComposableOperator for LiftResultOperator<ResultIn, ResultInError, InError>
where ResultIn: Signal, ResultInError: Signal, InError: Signal,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <LiftResultOperator<ResultIn, ResultInError, InError> as ObservableOutput>::Out, InError = <LiftResultOperator<ResultIn, ResultInError, InError> as ObservableOutput>::OutError> + Send + Sync> = LiftResultSubscriber<ResultIn, ResultInError, InError, Destination>

Source§

impl<TapDestination> ComposableOperator for TapOperator<TapDestination>
where TapDestination: 'static + RxObserver + Send + Sync, <TapDestination as ObserverInput>::In: Clone, <TapDestination as ObserverInput>::InError: Clone,

Source§

type Subscriber<Destination: 'static + Subscriber<In = <TapOperator<TapDestination> as ObservableOutput>::Out, InError = <TapOperator<TapDestination> as ObservableOutput>::OutError> + Send + Sync> = TapSubscriber<TapDestination, Destination>