4 个版本
使用旧的 Rust 2015
0.2.3 | 2015 年 12 月 13 日 |
---|---|
0.2.2 | 2015 年 12 月 13 日 |
0.2.1 | 2015 年 12 月 13 日 |
0.2.0 | 2015 年 12 月 13 日 |
#17 在 #publish-subscribe
29 每月下载次数
11KB
285 行
本地发布/订阅
文档
http://fuchsnj.github.io/rust_pubsub
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
pubsub = "*"
并添加到您的 crate 根目录
extern crate pubsub;
## 快速开始
extern crate pubsub;
use pubsub::PubSub;
//create pubsub with 5 threads. These threads run notification functions.
//messages are queued indefinitely until they can be run
let pubsub = PubSub::new(5);
//subscribe to a channel. The subscription will stay active as long
//as sub1 stays in scope
let sub1 = pubsub.subscribe("channel1", move |msg|{
println!("channel 1 was notified with msg: {}", msg);
});
//notify all subscribers of "channel1" with message "data1"
//This will always return immediately since messages are queued
pubsub.notify("channel1", "data1");
//notify all subscribers of "channel1" except sub1
sub1.notify_others("data3");
//If you want to start queueing messsages for a subscription, but
//don't want to process them until after some initialization
let sub2_activator = pubsub.lazy_subscribe("channel2");
//do some initialization here...
//notifications received here are queued
pubsub.notify("channel2", "data4");
//this creates a subscription and processes any messages in the backlog
let sub2 = sub2_activator.activate(move |msg|{
println!("channel 2 was notified with msg: {}", msg);
});
//subscriptions can be cancelled by dropping or cancelling
drop(sub1);
sub2.cancel();
依赖项
~43KB