event_dispatcher

Crates.ioevent_dispatcher
lib.rsevent_dispatcher
version0.0.2
sourcesrc
created_at2015-01-25 12:57:13.484375
updated_at2015-12-11 23:58:51.47213
descriptionA simple library to register listeners (with priority) for specific events inspired by rust-emitter
homepage
repositoryhttps://github.com/leshatai/rust-eventdispatcher
max_upload_size
id877
size10,102
Crate Owners (github:rust-flann:crate-owners)

documentation

README

EventDispatcher

A simple library to register listeners for specific events inspired by rust-emitter.

Usage example

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);
}

Commit count: 0

cargo fmt