#events #observer #delegates

eventd

简单的观察者类事件分发器

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

MIT 许可证

9KB
145

eventd

Rust 实现的观察者设计模式。分发是立即的并且是多播的。对于延迟处理,您可以使用 shrev

License: MIT Crates.io Documentation

有关此包的更多信息,请参阅 包文档

功能

  • 强类型
  • 多个处理器的订阅和取消订阅
  • 处理器的可配置生命周期、可变性和线程安全约束

用法

要使用 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