| Crates.io | ferro-events |
| lib.rs | ferro-events |
| version | 0.1.71 |
| created_at | 2026-01-16 17:12:55.793233+00 |
| updated_at | 2026-01-17 20:04:23.608205+00 |
| description | Event dispatcher and listener system for Ferro framework |
| homepage | |
| repository | https://github.com/albertogferrario/ferro |
| max_upload_size | |
| id | 2048978 |
| size | 36,907 |
Event dispatcher and listener system for the Ferro framework.
ShouldQueue markeruse ferro_events::{Event, Listener, dispatch};
// Define an event
#[derive(Clone)]
struct UserRegistered {
user_id: i64,
email: String,
}
impl Event for UserRegistered {
fn name(&self) -> &'static str {
"UserRegistered"
}
}
// Define a listener
struct SendWelcomeEmail;
#[async_trait::async_trait]
impl Listener<UserRegistered> for SendWelcomeEmail {
async fn handle(&self, event: &UserRegistered) -> Result<(), ferro_events::Error> {
println!("Sending welcome email to {}", event.email);
Ok(())
}
}
// Dispatch an event
dispatch(UserRegistered {
user_id: 1,
email: "test@example.com".into(),
}).await;
Mark a listener to be processed in the background:
impl ShouldQueue for SendWelcomeEmail {}
MIT