2 releases
0.1.1 | Dec 2, 2022 |
---|---|
0.1.0 | Dec 2, 2022 |
#17 in #event
4KB
Event System
Provides a simple lightweight event system for Rust.
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 // <- 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
}
Dependencies
~2MB
~43K SLoC