Skip to main content

Operator

Trait Operator 

Source
pub trait Operator<'o>: ObserverInput + ObservableOutput {
    type OutObservable<InObservable: 'o + Observable<Out = Self::In, OutError = Self::InError> + Send + Sync>: 'o + Observable<Out = Self::Out, OutError = Self::OutError>;

    // Required method
    fn operate<InObservable>(
        self,
        source: InObservable,
    ) -> Self::OutObservable<InObservable>
       where InObservable: 'o + Observable<Out = Self::In, OutError = Self::InError> + Send + Sync;
}
Expand description

§Operator

Operators transform Observables, giving them new behavior.

§Composable Operators

Operators who just want to wrap the destination in a subscriber can also implement ComposableOperator instead. Which allows the operator to be composable in addition.

Required Associated Types§

Source

type OutObservable<InObservable: 'o + Observable<Out = Self::In, OutError = Self::InError> + Send + Sync>: 'o + Observable<Out = Self::Out, OutError = Self::OutError>

Required Methods§

Source

fn operate<InObservable>( self, source: InObservable, ) -> Self::OutObservable<InObservable>
where InObservable: 'o + Observable<Out = Self::In, OutError = Self::InError> + 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.

Implementors§

Source§

impl<'o, ConnectorProvider> Operator<'o> for ShareOperator<ConnectorProvider>
where ConnectorProvider: 'static + Provider, <ConnectorProvider as Provider>::Provided: SubjectLike + Clone, <ShareOperator<ConnectorProvider> as ObserverInput>::In: Clone, <ShareOperator<ConnectorProvider> as ObserverInput>::InError: Clone,

Source§

type OutObservable<InObservable: 'o + Observable<Out = <ShareOperator<ConnectorProvider> as ObserverInput>::In, OutError = <ShareOperator<ConnectorProvider> as ObserverInput>::InError> + Send + Sync> = ShareObservable<InObservable, ConnectorProvider>

Source§

impl<'o, In, InError> Operator<'o> for RetryOperator<In, InError>
where 'o: 'static, In: Signal, InError: Signal,

Source§

type OutObservable<InObservable: 'o + Observable<Out = <RetryOperator<In, InError> as ObserverInput>::In, OutError = <RetryOperator<In, InError> as ObserverInput>::InError> + Send + Sync> = RetryObservable<'o, InObservable>

Source§

impl<'o, In, InError, S> Operator<'o> for SubscribeOnOperator<In, InError, S>
where 'o: 'static, In: Signal, InError: Signal, S: 'static + Scheduler + Send + Sync,

Source§

type OutObservable<InObservable: 'o + Observable<Out = <SubscribeOnOperator<In, InError, S> as ObserverInput>::In, OutError = <SubscribeOnOperator<In, InError, S> as ObserverInput>::InError> + Send + Sync> = SubscribeOnObservable<InObservable, S>

Source§

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

Source§

type OutObservable<InObservable: 'o + Observable<Out = <Op as ObserverInput>::In, OutError = <Op as ObserverInput>::InError> + Send + Sync> = Pipe<InObservable, Op>