This allows you to register types that'll be broadcast to receivers
```rust
struct Message { data: String }
let mut map = EventMap::new();
// nothing is registered by default
asserteq!(map.isempty::
// register two subscriptions for the message
// this returns an EventStream
// which can be used as a blocking Iterator or as an async Stream
let mut m1 = map.register::
let msg = Message{ data: String::from("hello world") };
// send the message, will return a bool if any messages were sent
asserteq!(map.send(msg.clone()), true);
// we should have 2 still active
asserteq!(map.active::
asserteq!(m1.next().unwrap(), msg); asserteq!(m2.next().unwrap(), msg);
// drop a subscription (will be cleaned up in the eventmap on next send) drop(m1);
let msg = Message{ data: String::from("testing") };
asserteq!(map.send(msg.clone()), true);
// we only have 1 active now
asserteq!(map.active::
License: 0BSD