pub struct EventBus { /* private fields */ }Expand description
Event bus that can emit events and register event handlers
The event bus is responsible for managing event handlers and emitting events to them. It provides a simple way to register and unregister handlers, and to emit events to all registered handlers.
§Examples
struct MyHandler;
#[async_trait]
impl EventHandler for MyHandler {
async fn handle_event(&self, event: &Event) -> Result<(), Error> {
// Handle the event...
Ok(())
}
}
let mut event_bus = EventBus::default();
event_bus.register(Arc::new(MyHandler));
event_bus.emit(&Event::UserCreated(User::builder().id(UserId::new("test")).build().unwrap())).await;Implementations§
Source§impl EventBus
impl EventBus
Sourcepub async fn register(&self, handler: Arc<dyn EventHandler>)
pub async fn register(&self, handler: Arc<dyn EventHandler>)
Register an event handler with the event bus
§Examples
struct MyHandler;
#[async_trait]
impl EventHandler for MyHandler {
async fn handle_event(&self, event: &Event) -> Result<(), Error> {
// Handle the event...
Ok(())
}
}
let mut event_bus = EventBus::default();
event_bus.register(Arc::new(MyHandler));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