#事件监听 #事件 #调度器 #并行 #监听器 #异步

hey_listen

提供异步、同步、并行和优先级解决方案的事件调度器集合!

8 个版本 (4 个重大更新)

0.5.0 2021年4月18日
0.4.0 2019年5月5日
0.3.0 2019年5月1日
0.2.1 2018年12月6日
0.1.2 2018年1月13日

#449 in 并发

每月46次下载
用于 danmuji

ISC 许可协议

42KB
479

ci-badge docs-badge rust version badge crates.io version

嘿!听!

Hey_listen 是一个旨在满足所有需求的事件调度器集合!
目前覆盖

  • 优先级调度
  • 线程池调度
  • 异步调度

查看 examples 文件夹了解如何使用每个调度器。

欢迎所有人贡献,查看 CONTRIBUTING.md 获取进一步指导。

示例

以下是一个如何使用事件调度器的快速示例

use hey_listen::sync::{
    ParallelDispatcher, ParallelListener, ParallelDispatchResult,
};

#[derive(Clone, Eq, Hash, PartialEq)]
enum Event {
    Variant,
}

struct Listener {}

impl ParallelListener<Event> for Listener {
    fn on_event(&self, _event: &Event) -> Option<ParallelDispatchResult> {
        println!("I'm listening! :)");

        None
    }
}

fn main() {
    let listener = Listener {};
    let mut dispatcher = ParallelDispatcher::<Event>::new(4).expect("Could not construct threadpool");

    dispatcher.add_listener(Event::Variant, listener);
    dispatcher.dispatch_event(&Event::Variant);
}

安装

将此添加到您的 Cargo.toml

[dependencies]
hey_listen = "0.5"

依赖项

~0.6–4MB
~69K SLoC