EventSys
This is a work-in-progess project and not for production use.
A library for dispatching and processing events. Events can be handled in a deferred and/or immediate way.
Events can be:
- handled with an event listener:
EventBackend::register_listener() - be registered:
EventBackend::register_store()
To trigger a new event, call EventBackend::new_event().
Using an EventBackend
Using an EventBackend should generally be done in 2 phases:
- Create an new
EventBackendand register all events - Use the
EventBackendto trigger new events
Events can be triggered without needing mutable access to the EventBackend,
while registering new event types does need mutable access.
Example
Example Listeners
use EventBackend;
// create event system, events can be a max size of 16 bytes
let mut system = new;
// create listener to be called on event trigger
let listener = ;
// register listener for event type
system..unwrap;
// trigger event
system.;
Example Batching
use ;
// create event system, events can be a max size of 16 bytes
let mut system = new;
// register listener for event type
system..unwrap;
// trigger event
system.;
system.;
system.;
// query batch
let event_iter = system..unwrap;
for event in event_iter
Licence
This project is licensed under the MIT license.