#emitter #traits #events #basic #expose #called #methods

RustyEmitter

RustyEmitter 是一个简单的发射器的基本实现。该模块公开了一个包含 on、off 和 emit 方法的 Events 特性,以及该特性的默认实现,称为 Emitter。

2 个稳定版本

使用旧的 Rust 2015

2.2.0 2016 年 2 月 22 日
2.1.0 2015 年 7 月 25 日

1726Rust 模式 中排名

每月下载 42

MIT 许可证

4KB

RustyEmitter

RustyEmitter 是一个简单的发射器的基本实现。该模块公开了一个包含 onoffemit 方法的 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);
}

无运行时依赖