from_fn

Function from_fn 

Source
pub fn from_fn<E, F>(f: F) -> FromFn<E, F>
where FromFn<E, F>: Listener,
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}