pub enum OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,{
Some(InnerSubscriber),
None(Destination),
}Variants§
Trait Implementations§
Source§impl<InnerSubscriber, Destination> Drop for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,
impl<InnerSubscriber, Destination> Drop for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,
Source§impl<InnerSubscriber, Destination> ObserverInput for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,
impl<InnerSubscriber, Destination> ObserverInput for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,
type In = <InnerSubscriber as ObserverInput>::In
type InError = <InnerSubscriber as ObserverInput>::InError
Source§impl<InnerSubscriber, Destination> RxObserver for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,
<InnerSubscriber as ObserverInput>::In: 'static,
<InnerSubscriber as ObserverInput>::InError: 'static,
impl<InnerSubscriber, Destination> RxObserver for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,
<InnerSubscriber as ObserverInput>::In: 'static,
<InnerSubscriber as ObserverInput>::InError: 'static,
Source§fn next(
&mut self,
next: <OptionSubscriber<InnerSubscriber, Destination> as ObserverInput>::In,
)
fn next( &mut self, next: <OptionSubscriber<InnerSubscriber, Destination> as ObserverInput>::In, )
Signals the next value.
Source§fn error(
&mut self,
error: <OptionSubscriber<InnerSubscriber, Destination> as ObserverInput>::InError,
)
fn error( &mut self, error: <OptionSubscriber<InnerSubscriber, Destination> as ObserverInput>::InError, )
Signals an error of upstream, no more
next or complete calls
are expected after this!Source§impl<InnerSubscriber, Destination> SubscriptionLike for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,
<InnerSubscriber as ObserverInput>::In: 'static,
<InnerSubscriber as ObserverInput>::InError: 'static,
impl<InnerSubscriber, Destination> SubscriptionLike for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,
<InnerSubscriber as ObserverInput>::In: 'static,
<InnerSubscriber as ObserverInput>::InError: 'static,
Source§fn is_closed(&self) -> bool
fn is_closed(&self) -> bool
Returns if the subscription is closed or not. A subscription can be
closed by calling unsubscribe on it. Some special subscriptions made
by observables that only ever emit values during subscribe, will produce
subscriptions that are created closed. Read more
Source§fn unsubscribe(&mut self)
fn unsubscribe(&mut self)
Releases all resources associated with this subscription, and marks it
as closed. Read more
Source§impl<InnerSubscriber, Destination> TeardownCollection for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,
<InnerSubscriber as ObserverInput>::In: 'static,
<InnerSubscriber as ObserverInput>::InError: 'static,
impl<InnerSubscriber, Destination> TeardownCollection for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,
<InnerSubscriber as ObserverInput>::In: 'static,
<InnerSubscriber as ObserverInput>::InError: 'static,
Source§fn add_teardown(&mut self, teardown: Teardown)
fn add_teardown(&mut self, teardown: Teardown)
Add additional teardowns to execute on unsubscribe. If the subscription
is already closed, the added teardown is immediately executed!
Source§impl<InnerSubscriber, Destination> WithPrimaryCategory for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,
impl<InnerSubscriber, Destination> WithPrimaryCategory for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,
impl<InnerSubscriber, Destination> ObserverUpgradesToSelf for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: Subscriber,
Destination: Subscriber<In = <InnerSubscriber as ObserverInput>::In, InError = <InnerSubscriber as ObserverInput>::InError>,
Auto Trait Implementations§
impl<InnerSubscriber, Destination> Freeze for OptionSubscriber<InnerSubscriber, Destination>
impl<InnerSubscriber, Destination> RefUnwindSafe for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: RefUnwindSafe,
Destination: RefUnwindSafe,
impl<InnerSubscriber, Destination> Send for OptionSubscriber<InnerSubscriber, Destination>
impl<InnerSubscriber, Destination> Sync for OptionSubscriber<InnerSubscriber, Destination>
impl<InnerSubscriber, Destination> Unpin for OptionSubscriber<InnerSubscriber, Destination>
impl<InnerSubscriber, Destination> UnwindSafe for OptionSubscriber<InnerSubscriber, Destination>where
InnerSubscriber: UnwindSafe,
Destination: UnwindSafe,
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<S> EraseSubscriptionExtension for S
impl<S> EraseSubscriptionExtension for S
fn erase(self) -> ErasedSubscription
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
Source§fn into_result(self) -> Result<T, RunSystemError>
fn into_result(self) -> Result<T, RunSystemError>
Converts this type into the system output type.
Source§impl<T> ObserverPushObserverNotificationExtention for Twhere
T: RxObserver,
impl<T> ObserverPushObserverNotificationExtention for Twhere
T: RxObserver,
fn push( &mut self, notification: impl Into<ObserverNotification<<T as ObserverInput>::In, <T as ObserverInput>::InError>>, )
Source§impl<T> ObserverPushObserverTerminalNotificationExtention for Twhere
T: RxObserver,
impl<T> ObserverPushObserverTerminalNotificationExtention for Twhere
T: RxObserver,
fn push( &mut self, notification: impl Into<ObserverTerminalNotification<<T as ObserverInput>::InError>>, )
Source§impl<T> SubscriberPushNotificationExtention for Twhere
T: Subscriber,
impl<T> SubscriberPushNotificationExtention for Twhere
T: Subscriber,
fn push( &mut self, notification: impl Into<SubscriberNotification<<T as ObserverInput>::In, <T as ObserverInput>::InError>>, )
Wrap this subscription into a SharedSubscription, erasing it and
allowing you to freely clone it, to unsubscribe it from multiple places.