6 个版本
0.3.2 | 2019年4月9日 |
---|---|
0.3.1 | 2019年3月5日 |
0.2.0 | 2019年3月1日 |
0.1.1 | 2019年2月28日 |
在 #delegate 中排名 7
9KB
145 行
eventd
Rust 实现的观察者设计模式。分发是立即的并且是多播的。对于延迟处理,您可以使用 shrev。
有关此包的更多信息,请参阅 包文档。
功能
- 强类型
- 多个处理器的订阅和取消订阅
- 处理器的可配置生命周期、可变性和线程安全约束
用法
要使用 eventd
,首先将以下内容添加到您的 Cargo.toml
[dependencies]
eventd = "0.3"
然后,您可以使用 event!
宏来定义事件签名并使用它们
#[macro_use]
extern crate eventd;
event!(MyEvent => Fn(x: u8) + 'static);
fn main() {
let mut my_event = MyEvent::default();
let _ = my_event.subscribe(|x| println!("Got {}", x));
my_event.emit(42);
}
依赖项
~45KB