### Event System Provides a simple lightweight event system for Rust. [Crate on Crates.io](https://crates.io/crates/event_system) ### 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. ```rust use event_system::create_event_system; create_event_system! { EventSystem // <- Name of struct 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 } ```