#events #dispatcher #event-listener

event_dispatcher

一个简单的库,用于根据 rust-emitter 模式注册特定事件的监听器(带有优先级)。

2 个版本

使用旧的 Rust 2015

0.0.2 2015年1月25日
0.0.1 2015年1月25日

#20#dispatcher

自定义许可证

8KB
136

事件调度器

一个简单的库,用于注册特定事件的监听器,灵感来源于 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);
}

无运行时依赖