pub struct EventBus { /* private fields */ }
Expand description
Event bus for managing event distribution
Implementations§
Source§impl EventBus
impl EventBus
Sourcepub fn with_config(max_queue_size: usize, tracing_enabled: bool) -> Self
pub fn with_config(max_queue_size: usize, tracing_enabled: bool) -> Self
Create a new event bus with custom configuration
Sourcepub async fn subscribe<E: Event, H: EventHandler<E> + 'static>(
&self,
handler: H,
) -> Result<()>
pub async fn subscribe<E: Event, H: EventHandler<E> + 'static>( &self, handler: H, ) -> Result<()>
Subscribe to events of a specific type
Sourcepub async fn publish<E: Event>(&self, event: E) -> Result<()>
pub async fn publish<E: Event>(&self, event: E) -> Result<()>
Publish an event to all subscribers
Sourcepub async fn create_stream<E: Event>(
&self,
) -> Receiver<Arc<dyn Any + Send + Sync>>
pub async fn create_stream<E: Event>( &self, ) -> Receiver<Arc<dyn Any + Send + Sync>>
Create a broadcast channel for streaming events
Sourcepub async fn handler_count<E: Event>(&self) -> usize
pub async fn handler_count<E: Event>(&self) -> usize
Get the number of handlers for a specific event type
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for EventBus
impl !RefUnwindSafe for EventBus
impl Send for EventBus
impl Sync for EventBus
impl Unpin for EventBus
impl !UnwindSafe for EventBus
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 more