Event System
Provides a simple lightweight event system for Rust.
Crate on Crates.io
Example
The first entry in the macro is the name of the event system struct.
Any following entries take the form of struct-enum variants, where the name is the event name and the data the structure for the payload when the event is fired.
use event_system::create_event_system;
create_event_system! {
EventSystem ApplicationLoad {}
ApplicationExit {}
KeyDown {
key: u8,
}
}
fn main() {
let mut events = EventSystem::new();
events.register_key_down(key_down);
events.fire_application_load();
events.fire_key_down(EventKeyDown { key: 55 });
events.fire_application_exit();
}
fn key_down(packet: EventKeyDown) -> bool {
println!("Key down {:?}", packet.key);
true
}