pub trait EventHandler<E: Send + 'static>:
Send
+ Sync
+ 'static {
// Required method
fn handle(
&self,
event: E,
ctx: &Container,
) -> impl Future<Output = Result<(), EventError>> + Send;
}Expand description
Handler para um tipo de evento E.
Implementadores recebem o evento por valor e o Container compartilhado
para injeção de dependências, e retornam Ok(()) ou um EventError.
§Exemplo
use serverust_core::events::{EventHandler, EventError};
use serverust_core::Container;
use std::sync::Arc;
struct MyEvent { value: u32 }
struct MyHandler;
impl EventHandler<MyEvent> for MyHandler {
async fn handle(&self, event: MyEvent, _ctx: &Container) -> Result<(), EventError> {
println!("received: {}", event.value);
Ok(())
}
}Required Methods§
fn handle( &self, event: E, ctx: &Container, ) -> impl Future<Output = Result<(), EventError>> + Send
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.