3个版本
0.1.2 | 2019年9月5日 |
---|---|
0.1.1 | 2019年1月18日 |
0.1.0 | 2019年1月15日 |
#35 in #ok
15KB
203 行
tokio-bus
示例
use tokio;
use tokio_bus::Bus;
use futures::future::{Future, lazy, ok};
use futures::stream::{Stream, iter_ok};
use futures::sink::Sink;
let mut bus = Bus::new(64);
let rx1 = bus.add_rx();
let rx2 = bus.add_rx();
let send_values = bus
.send_all(iter_ok::<_, ()>(vec![1, 2, 3, 4, 5, 6]));
let sum_values = rx1
.fold(0i32, |acc, x| { ok(acc + x) });
let div_values = rx2
.fold(1f64, |acc, x| { ok(x as f64 / acc) });
let runtime = tokio::runtime::Runtime::new().unwrap();
runtime.block_on_all(lazy(move || {
tokio::spawn(send_values
.map(|_| {})
.map_err(|_| { panic!(); })
);
assert_eq!(sum_values.wait(), Ok(21));
assert_eq!(div_values.wait(), Ok(3.2));
ok::<(), ()>(())
})).unwrap();
依赖关系
~3.5–8.5MB
~57K SLoC