1 个不稳定版本
0.1.0 | 2022年7月28日 |
---|
#10 in #monad
5KB
96 行
eventroute
eventroute 使用泛型而不是特定的事件名称或标识符,提供了一种类型安全的中间件路由。中间件可以直接传递给 .on
,而 .emit
提供了一种简单的机制来分发到回调中间件。
示例
pub struct Test {
foo: i32,
}
pub struct Foo {
bar: i32,
}
#[test]
fn test_router() {
let mut router = eventroute::new();
router.on(|i: i32| {
println!("{}", i * 10);
});
router.on(|(a, b): (i32, i32)| {
println!("{}", a * b);
});
router.on(|test: Test| {
println!("test {}", test.foo);
});
router.on(|foo: Foo| {
println!("bar {}", foo.bar);
});
router.emit(3);
router.emit((2, 3));
router.emit(Foo { bar: 232 });
router.emit(Test { foo: 232 });
}