4个稳定版本
使用旧的Rust 2015
1.0.3 | 2017年7月18日 |
---|
#884 在 并发
8KB
55 行
looper
为单线程事件循环提供干净的抽象。作为std::sync::mpsc包的轻量级包装器构建。
lib.rs
:
为单线程事件循环提供干净的抽象。作为std::sync::mpsc包的轻量级包装器构建。
示例用法
use mrogalski_looper::{Handler, Sender, run};
struct ExampleHandler {
data: Vec<i32>,
}
impl Handler<i32> for ExampleHandler {
// Invoked right after the `run` function is called.
fn start(&mut self, sender: Sender<i32>) {
for elem in vec![1, 2, 3] {
sender.send(elem.clone()).unwrap();
}
}
// Called for every `event` sent to the `sender`.
fn handle(&mut self, i: i32) -> bool {
self.data.push(i);
true
}
// Called after last event is processed or an error occurs.
fn end(self) {
assert_eq!(self.data, vec![1, 2, 3]);
}
}
// Blocks the current thread until all events are processed.
run(ExampleHandler { data: vec![] });