4 个版本

使用旧的 Rust 2015

0.1.0 2015 年 11 月 9 日
0.0.5 2015 年 8 月 26 日
0.0.4 2015 年 7 月 2 日
0.0.3 2015 年 6 月 15 日

#801并发

MIT 许可证

10KB
185

Rust 调度器

调度器允许您从多个广播器向多个接收器发送消息。当大量消息在多线程应用程序中传递时,集中管理消息流动可以创建非常有用的监管。

传递的消息类型是强类型的,由您设置,消息本身是字符串。

安装

将以下内容添加到您的 Cargo.toml

rdispatcher = "*"

然后运行 cargo install

用法

简单示例

  let mut dispatcher = Dispatcher::new();
  let sub = TestSubscriber::new();
  let mut brd = TestBroadcaster::new();
  dispatcher.register_broadcaster(&mut brd);
  dispatcher.register_subscriber(&sub, OutgoingMessage);

  dispatcher.start();

  brd.broadcast(OutgoingMessage, "Hello world!".to_string());
  let message = sub.receiver.recv().unwrap();
  assert_eq!(message.dispatch_type, OutgoingMessage);
  assert_eq!(message.payload, "Hello world!");

有关更多完整示例,请查看 lib.rs 中的测试

注意事项

  • 当前,DispatchType(我更喜欢使用枚举)使用 Debug 转换为字符串。这是遗留的,应该仅使用 Hash。如果您为您的枚举创建了自定义的 Debug,您可能会得到意外结果。 已解决
  • 复杂的枚举(例如,SomethingComplex(String))目前不能作为调度类型,并会产生奇怪的结果。

无运行时依赖项