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