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 在 并发
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))目前不能作为调度类型,并会产生奇怪的结果。