Asynchronous event

Events can be joined asynchronously with the join_async method and the EventWait type.

use std::time::Duration;
use blaze_rs::{event::{EventWait, consumer::Noop}, prelude::*};

static CONTEXT : SimpleContext = SimpleContext::default();

#[tokio::main] async fn main () -> Result<()> {
let flag = FlagEvent::new()?;
let sub: EventWait<Noop> = flag

let handle = tokio::spawn(async move {
    return Ok();

tokio::try_join!(handle, sub)?;
Ok(()) }

Note that join_async requires the futures feature.