Skip to main content

EventSubscribers

Struct EventSubscribers 

Source
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,

Source

pub fn new() -> Self

Creates a new set of event subscribers

Source

pub fn subscribe( &mut self, context: &SceneContext, target: impl Into<StreamTarget>, )

Subscribes a subprogram to the events sent by this object

Source

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

Source

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,

Source

pub async fn send(&mut self, message: TEventMessage) -> bool

Sends a message to the subscribers to this object

Returns true if the message is sent to at least one subscriber, or false if there are no subscribers

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.