Enum overclock::core::Subscriber
source · pub enum Subscriber<T: Resource> {
OneCopy(Sender<Result<T>>),
LinkedCopy(Option<Sender<Result<T>>>, Box<dyn Shutdown>, bool),
DynCopy(ResourceRef, Box<dyn Route<Event<T>>>),
}
Expand description
Subscriber variants
Variants§
OneCopy(Sender<Result<T>>)
OneCopy subscriber will receive one copy of the resource once it’s available
LinkedCopy(Option<Sender<Result<T>>>, Box<dyn Shutdown>, bool)
LinkedOneCopy subscriber will receive one copy of the resource once it’s available, subscriber will get shutdown if the resource is replaced or dropped.
DynCopy(ResourceRef, Box<dyn Route<Event<T>>>)
Subscriber will receive dynamic copies, pushed by the publisher, and Event::Dropped(..) will be pushed if the resource got dropped by the publisher. Bool flag is used to indicate wheith
Implementations§
Auto Trait Implementations§
impl<T> !RefUnwindSafe for Subscriber<T>
impl<T> Send for Subscriber<T>
impl<T> Sync for Subscriber<T>
impl<T> Unpin for Subscriber<T>
impl<T> !UnwindSafe for Subscriber<T>
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<E, T, const C: usize> ChannelBuilder<AbortableBoundedChannel<E, C>> for Twhere
E: Send + 'static,
T: Send,
impl<E, T, const C: usize> ChannelBuilder<AbortableBoundedChannel<E, C>> for Twhere E: Send + 'static, T: Send,
source§fn build_channel<'life0, 'async_trait>(
&'life0 mut self
) -> Pin<Box<dyn Future<Output = Result<AbortableBoundedChannel<E, C>, ActorError>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
T: 'async_trait,
fn build_channel<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<AbortableBoundedChannel<E, C>, ActorError>> + Send + 'async_trait, Global>>where 'life0: 'async_trait, T: 'async_trait,
Implement how to build the channel for the corresponding actor
source§impl<E, T> ChannelBuilder<AbortableUnboundedChannel<E>> for Twhere
E: Send + 'static,
T: Send,
impl<E, T> ChannelBuilder<AbortableUnboundedChannel<E>> for Twhere E: Send + 'static, T: Send,
source§fn build_channel<'life0, 'async_trait>(
&'life0 mut self
) -> Pin<Box<dyn Future<Output = Result<AbortableUnboundedChannel<E>, ActorError>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
T: 'async_trait,
fn build_channel<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<AbortableUnboundedChannel<E>, ActorError>> + Send + 'async_trait, Global>>where 'life0: 'async_trait, T: 'async_trait,
Implement how to build the channel for the corresponding actor
source§impl<E, T, const C: usize> ChannelBuilder<BoundedChannel<E, C>> for Twhere
E: ShutdownEvent + 'static,
T: Send,
impl<E, T, const C: usize> ChannelBuilder<BoundedChannel<E, C>> for Twhere E: ShutdownEvent + 'static, T: Send,
source§fn build_channel<'life0, 'async_trait>(
&'life0 mut self
) -> Pin<Box<dyn Future<Output = Result<BoundedChannel<E, C>, ActorError>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
T: 'async_trait,
fn build_channel<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<BoundedChannel<E, C>, ActorError>> + Send + 'async_trait, Global>>where 'life0: 'async_trait, T: 'async_trait,
Implement how to build the channel for the corresponding actor
source§impl<T, const I: u64> ChannelBuilder<IntervalChannel<I>> for Twhere
T: Send,
impl<T, const I: u64> ChannelBuilder<IntervalChannel<I>> for Twhere T: Send,
source§fn build_channel<'life0, 'async_trait>(
&'life0 mut self
) -> Pin<Box<dyn Future<Output = Result<IntervalChannel<I>, ActorError>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
T: 'async_trait,
fn build_channel<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<IntervalChannel<I>, ActorError>> + Send + 'async_trait, Global>>where 'life0: 'async_trait, T: 'async_trait,
Implement how to build the channel for the corresponding actor
source§impl<T, C, B> ChannelBuilder<Marker<C, B>> for Twhere
B: Send + 'static + Sync,
T: Send + ChannelBuilder<C>,
C: Channel,
impl<T, C, B> ChannelBuilder<Marker<C, B>> for Twhere B: Send + 'static + Sync, T: Send + ChannelBuilder<C>, C: Channel,
source§impl<T> ChannelBuilder<NullChannel> for Twhere
T: Send,
impl<T> ChannelBuilder<NullChannel> for Twhere T: Send,
source§fn build_channel<'life0, 'async_trait>(
&'life0 mut self
) -> Pin<Box<dyn Future<Output = Result<NullChannel, ActorError>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
T: 'async_trait,
fn build_channel<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<NullChannel, ActorError>> + Send + 'async_trait, Global>>where 'life0: 'async_trait, T: 'async_trait,
Implement how to build the channel for the corresponding actor
source§impl<E, T> ChannelBuilder<UnboundedChannel<E>> for Twhere
E: ShutdownEvent + 'static,
T: Send,
impl<E, T> ChannelBuilder<UnboundedChannel<E>> for Twhere E: ShutdownEvent + 'static, T: Send,
source§fn build_channel<'life0, 'async_trait>(
&'life0 mut self
) -> Pin<Box<dyn Future<Output = Result<UnboundedChannel<E>, ActorError>> + Send + 'async_trait, Global>>where
'life0: 'async_trait,
T: 'async_trait,
fn build_channel<'life0, 'async_trait>( &'life0 mut self ) -> Pin<Box<dyn Future<Output = Result<UnboundedChannel<E>, ActorError>> + Send + 'async_trait, Global>>where 'life0: 'async_trait, T: 'async_trait,
Implement how to build the channel for the corresponding actor