7 个版本
| 0.3.4 | 2024年6月26日 |
|---|---|
| 0.3.3 | 2024年6月26日 |
| 0.3.1 | 2023年10月15日 |
| 0.2.4 | 2023年7月25日 |
| 0.2.3 | 2023年4月20日 |
#2103 in Rust 模式
55 每月下载量
63KB
1.5K SLoC
sod-bus
sod::MutService 实现与 bus::Bus 交互。
服务实现
BusBroadcaster向bus::Bus广播,并在操作成功之前阻塞。BusTryBroadcaster尝试向bus::Bus广播,并在总线缓冲区满时可以通过sod::RetryService重试。BusReceiver从bus::BusReader接收,在接收到元素之前阻塞。BusTryReceiver尝试从bus::BusReader接收,并在总线为空时可以通过sod::RetryService重试。
示例
use sod::MutService;
use sod_bus::{BusBroadcaster, BusReceiver};
let mut broadcaster = BusBroadcaster::with_len(1024);
let mut receiver1 = broadcaster.create_receiver();
let mut receiver2 = broadcaster.create_receiver();
broadcaster.process(1).unwrap();
broadcaster.process(2).unwrap();
broadcaster.process(3).unwrap();
assert_eq!(receiver1.process(()).unwrap(), 1);
assert_eq!(receiver1.process(()).unwrap(), 2);
assert_eq!(receiver1.process(()).unwrap(), 3);
assert_eq!(receiver2.process(()).unwrap(), 1);
assert_eq!(receiver2.process(()).unwrap(), 2);
assert_eq!(receiver2.process(()).unwrap(), 3);
依赖
~0.8–6MB
~29K SLoC