pub struct EventBus { /* private fields */ }Expand description
Thread-safe async event bus for publish/subscribe pattern
Implementations§
Source§impl EventBus
impl EventBus
Sourcepub async fn subscribe_async<F, Fut>(
&self,
channel: &str,
handler: F,
) -> Subscriber
pub async fn subscribe_async<F, Fut>( &self, channel: &str, handler: F, ) -> Subscriber
Subscribe to an event channel with an async handler
Sourcepub async fn subscribe_sync(
&self,
channel: &str,
handler: SyncEventHandler,
) -> Subscriber
pub async fn subscribe_sync( &self, channel: &str, handler: SyncEventHandler, ) -> Subscriber
Subscribe to an event channel with a sync handler
Sourcepub fn subscribe(&self, channel: &str, handler: SyncEventHandler) -> Subscriber
pub fn subscribe(&self, channel: &str, handler: SyncEventHandler) -> Subscriber
Subscribe to an event channel (sync version for convenience)
Sourcepub async fn publish(&self, channel: &str, event: AgentSessionEvent)
pub async fn publish(&self, channel: &str, event: AgentSessionEvent)
Publish an event to a channel
Sourcepub async fn unsubscribe(&self, channel: &str, id: u64)
pub async fn unsubscribe(&self, channel: &str, id: u64)
Unsubscribe a specific handler
Sourcepub async fn unsubscribe_all(&self, channel: &str)
pub async fn unsubscribe_all(&self, channel: &str)
Unsubscribe all handlers for a channel
Sourcepub async fn subscription_count(&self) -> usize
pub async fn subscription_count(&self) -> usize
Get the number of active subscriptions
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 UnsafeUnpin 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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
Read this value from the supplied reader. Same as
ReadEndian::read_from_little_endian().