ci-badge docs-badge

Hey! Listen!

Hey_listen is a collection of event-dispatchers aiming to suit all needs!

Covering synchronous, parallel, and sync-prioritised dispatching to Closures, Enums, Structs, and every other type supporting trait-implementation.

View the examples-folder on how to use each dispatcher.

Everyone is welcome to contribute, check out the CONTRIBUTING.md for further guidance.

Example

Here is a quick example on how to use the event-dispatcher:

```rust extern crate heylisten; extern crate parkinglot;

use heylisten::{EventDispatcher, Listener, SyncDispatcherRequest}; use std::sync::Arc; use parkinglot::Mutex;

[derive(Clone, Eq, Hash, PartialEq)]

enum Event { EventVariant, }

struct ListenerStruct {}

impl Listener for ListenerStruct { fn on_event(&mut self, _event: &Event) -> Option { println!("I'm listening! :)");

    None
}

}

fn main() { let listener = Arc::new(Mutex::new(ListenerStruct {})); let mut dispatcher: EventDispatcher = EventDispatcher::default();

dispatcher.add_listener(Event::EventVariant, &listener);
dispatcher.dispatch_event(&Event::EventVariant);

}

```

Installation

Add this to your Cargo.toml:

toml [dependencies] hey_listen = "0.2.0" parking_lot = "^0.5.4"

and this to your crate's root:

rust,ignore extern crate hey_listen; extern crate parking_lot;