Crate hey_listen [−] [src]
Hey_listen is an event-dispatcher for Closures, Structs, Enums and other types. On another note, hey_listen supports prioritised/ordered dispatching and aims to add parallel dispatching as well!
Usage
Add this to your Cargo.toml
:
[dependencies]
hey_listen = "0.1.2"
parking_lot = "^0.5"
and this to your crate's root:
extern crate hey_listen; extern crate parking_lot;
Example
Here is a quick example on how to use the event-dispatcher:
extern crate hey_listen; extern crate parking_lot; use hey_listen::Listener; use hey_listen::EventDispatcher; use std::sync::Arc; use parking_lot::Mutex; #[derive(Clone, Eq, Hash, PartialEq)] enum Event { EventType, } struct ListenerStruct {} impl Listener<Event> for ListenerStruct { fn on_event(&mut self, event: &Event) { println!("I'm listening! :)"); } } fn main() { let listener = Arc::new(Mutex::new(ListenerStruct {})); let mut dispatcher: EventDispatcher<Event> = EventDispatcher::new(); dispatcher.add_listener(Event::EventType, &listener); }
Structs
EventDispatcher |
Owns a map of all listened event-variants,
|
PriorityEventDispatcher |
Owns a map of all listened event-variants,
|
Enums
Error |
Returning |
Traits
Listener |
Every event-receiver needs to implement this trait
in order to receive dispatched events.
|