pub struct EventSubscribers<TEventMessage>where
TEventMessage: 'static + SceneMessage,{ /* private fields */ }Expand description
Stores the subscribers for an event stream, and forwards events as needed
Implementations§
Source§impl<TEventMessage> EventSubscribers<TEventMessage>where
TEventMessage: 'static + SceneMessage,
impl<TEventMessage> EventSubscribers<TEventMessage>where
TEventMessage: 'static + SceneMessage,
Sourcepub fn subscribe(
&mut self,
context: &SceneContext,
target: impl Into<StreamTarget>,
)
pub fn subscribe( &mut self, context: &SceneContext, target: impl Into<StreamTarget>, )
Subscribes a subprogram to the events sent by this object
Sourcepub fn add_target(&mut self, output_sink: OutputSink<TEventMessage>)
pub fn add_target(&mut self, output_sink: OutputSink<TEventMessage>)
Adds a target output sink to the list of subscribers for this object
This sink cannot be unsubscribed from the events, but this can be used to send to other streams where the target is not identified by a subprogram ID
Sourcepub async fn send_round_robin(
&mut self,
message: TEventMessage,
) -> Result<(), TEventMessage>
pub async fn send_round_robin( &mut self, message: TEventMessage, ) -> Result<(), TEventMessage>
Sends a message to a single subscriber, returning Ok(()) if the message is delivered, otherwise returning an error that preserves the original message
Subscribers are sent to in a round-robin fashion
Source§impl<TEventMessage> EventSubscribers<TEventMessage>where
TEventMessage: 'static + Clone + SceneMessage,
impl<TEventMessage> EventSubscribers<TEventMessage>where
TEventMessage: 'static + Clone + SceneMessage,
Auto Trait Implementations§
impl<TEventMessage> Freeze for EventSubscribers<TEventMessage>
impl<TEventMessage> RefUnwindSafe for EventSubscribers<TEventMessage>where
TEventMessage: RefUnwindSafe,
impl<TEventMessage> Send for EventSubscribers<TEventMessage>
impl<TEventMessage> Sync for EventSubscribers<TEventMessage>where
TEventMessage: Sync,
impl<TEventMessage> Unpin for EventSubscribers<TEventMessage>
impl<TEventMessage> UnsafeUnpin for EventSubscribers<TEventMessage>
impl<TEventMessage> UnwindSafe for EventSubscribers<TEventMessage>where
TEventMessage: 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