Crates.io | event_dispatcher |
lib.rs | event_dispatcher |
version | 0.0.2 |
source | src |
created_at | 2015-01-25 12:57:13.484375 |
updated_at | 2015-12-11 23:58:51.47213 |
description | A simple library to register listeners (with priority) for specific events inspired by rust-emitter |
homepage | |
repository | https://github.com/leshatai/rust-eventdispatcher |
max_upload_size | |
id | 877 |
size | 10,102 |
A simple library to register listeners for specific events inspired by rust-emitter.
extern crate event_dispatcher;
use event_dispatcher::{Event, Listener, Dispatcher, Dispatchable};
struct TestEvent {
stopped: bool,
data: String
}
impl TestEvent {
pub fn new(event_data: String) -> TestEvent {
TestEvent {
stopped: false,
data: event_data
}
}
}
impl Event<TestEvent> for TestEvent {
fn is_propagation_stopped(&self) -> bool{
self.stopped
}
fn stop_propagation(&mut self){
self.stopped = true;
}
}
// the listener
fn event_test(event: &TestEvent) {
println!("called \"event_test\"");
}
fn main() {
let event = TestEvent::new("my_event".to_string());
let mut dispatcher = Dispatcher::new();
dispatcher.add_listener(&event, Listener::new(my_event_test));
dispatcher.dispatch(&event);
}