pub fn from_fn<E, F>(f: F) -> FromFn<E, F>Examples found in repository?
examples/base.rs (lines 25-27)
21async fn main() {
22 let bus = Bus::new(2);
23
24 // Register EventA listener
25 bus.once::<EventA>(from_fn(|_| async {
26 println!("Handled Event A");
27 }));
28
29 // Register EventB listener
30 let handle2 = bus.on(from_fn(|_: Rent<EventB>| async {
31 println!("Handled Event B");
32 }));
33
34 // Register EventC listener
35 bus.many(3, from_fn(event_c_listener));
36
37 // Emit events
38 bus.emit(EventA).await;
39 bus.emit(EventB).await;
40 bus.emit(EventC).await;
41 bus.emit(EventD).await;
42
43 // Cancel EventB listener and register EventD listener
44 handle2.cancel();
45 tokio::time::sleep(Duration::from_millis(1)).await;
46 bus.on(from_fn(|_: Rent<EventD>| async {
47 println!("Handled Event D");
48 }));
49
50 // Emit again
51 bus.emit(EventA).await;
52 bus.emit(EventB).await;
53 bus.clone().emit(EventD).await;
54 bus.drain().await;
55}