1 个不稳定版本
0.1.0 | 2020年10月30日 |
---|
#8 在 #looper
11KB
207 代码行数(不含注释)
looper
基于 Rust 实现的消息事件循环系统。
- looper 模块负责用户消息的插入;
- handler 模块负责处理用户消息;
基本原理
looper 模块将用户的所有消息,按照 UNIX 时间顺序,插入到链表中;handler 模块从链表中,取出已经到时间的消息进行处理。
示例
use rooper::{Looper, LooperMsg};
struct ExMsg {
val: i32,
}
impl LooperMsg for ExMsg {
fn handle_message(self) {
println!("msg val: {}", self.val);
}
}
fn main() {
let mut lp = Looper::new();
lp.send_msg_delay(ExMsg {val: 4}, std::time::Duration::from_millis(400));
lp.send_msg_delay(ExMsg {val: 3}, std::time::Duration::from_millis(600));
lp.send_msg_delay(ExMsg {val: 2}, std::time::Duration::from_millis(800));
lp.send_msg_delay(ExMsg {val: 1}, std::time::Duration::from_millis(1000));
lp.send_msg_delay(ExMsg {val: 5}, std::time::Duration::from_millis(200));
std::thread::sleep(std::time::Duration::from_secs(2));
lp.terminate();
}