2 个稳定版本
使用旧的 Rust 2015
2.2.0 | 2016 年 2 月 22 日 |
---|---|
2.1.0 | 2015 年 7 月 25 日 |
1726 在 Rust 模式 中排名
每月下载 42 次
4KB
RustyEmitter
RustyEmitter 是一个简单的发射器的基本实现。该模块公开了一个包含 on
、off
和 emit
方法的 Events
特性,以及该特性的默认实现,称为 Emitter。
为了使用它,您必须在您的代码中 use
该特性。
Emitter 可以为同一事件注册多个回调,并将 HashMap
由于这是一个可变引用,因此消耗发射器的函数可以修改 HashMap,从而允许事件调度器和监听事件代码之间的双向通信
构建和测试
该项目使用 cargo build 使用 cargo build
命令进行构建,并使用 cargo test
命令进行测试。
Cargo 配置
只需将以下内容添加到您的 Cargo.toml
文件中。
[dependencies.RustyEmitter]
version = "2.1.0"
来使用它
extern crate RustyEmitter;
use RustyEmitter::{Events, Emitter};
use std::collections::HashMap;
fn main(){
let (mut emitter, callback) = (
// create a new emitter instance
Emitter::new(),
// creating the handler in the same lifetime
&mut |data:& mut HashMap<String, String>| {
println!("IT WORKS!");
for (key, value) in data {
println!("{}: {}", key, value);
}
}
);
// listen to the "IT WORKS" event
emitter.on("IT WORKS".to_string(), callback);
// fire the "IT WORKS" event with an empty HashMap;
emitter.emit("IT WORKS".to_string(), & mut HashMap::new());
// fire it again passing some more data
let mut datas : HashMap<String, String> = HashMap::new();
datas.insert("some data".to_string(), "here".to_string());
emitter.emit("IT WORKS".to_string(), & mut datas);
}