pub trait EventListener<T: Event>: Send + Sync {
// Required method
fn on_event(&self, event: &T);
}Expand description
Event listener trait
Implement this trait to handle specific event types. The listener will be called whenever an event of the specified type is published.
§Examples
use verdure_context::{Event, EventListener};
use std::any::Any;
#[derive(Debug, Clone)]
struct MyEvent {
data: String,
}
impl Event for MyEvent {
fn name(&self) -> &'static str {
"MyEvent"
}
fn as_any(&self) -> &dyn Any {
self
}
fn into_any(self: Box<Self>) -> Box<dyn Any> {
self
}
}
struct MyEventListener;
impl EventListener<MyEvent> for MyEventListener {
fn on_event(&self, event: &MyEvent) {
println!("Received event with data: {}", event.data);
}
}