Struct event_emitter::EventEmitter
[−]
[src]
pub struct EventEmitter<T: Hash + Eq, U> { /* fields omitted */ }Node.js-like event emitter.
Example
#[derive(Hash, Eq, PartialEq)] enum Event { A, B, } let mut emitter = EventEmitter::new(); emitter.on(Event::A, |&data| { assert_eq!("data for A", data); }); emitter.on(Event::B, |&data| { assert_eq!("data for B", data); }); emitter.emit(Event::A, "data for A"); emitter.emit(Event::B, "data for B");
Methods
impl<T: Hash + Eq, U> EventEmitter<T, U>[src]
pub fn new() -> Self[src]
Creates a new instance of EventEmitter.
pub fn on<F>(&mut self, event: T, handler: F) where
F: Fn(&U) + 'static, [src]
F: Fn(&U) + 'static,
Registers function handler as a listener for event. There may be
multiple listeners for a single event.
pub fn emit(&self, event: T, payload: U)[src]
Invokes all listeners of event, passing a reference to payload as an
argument to each of them.