lustre-executor 0.2.0

A blazingly fast, minimal async executor with pluggable ID generation and I/O support.
Documentation
use lustre_executor::prelude::*;
use std::sync::{Arc, Mutex};
use std::time::Duration;

fn main() {
    let executor = Arc::new(Mutex::new(Executor::new().unwrap()));
    let timer_data = executor.lock().unwrap().timer_data();
    let start = std::time::Instant::now();

    {
        let mut exec = executor.lock().unwrap();
        exec.spawn(Task::new(async move {
            println!("Starting timer at {:?}", start.elapsed());
            std::io::Write::flush(&mut std::io::stdout()).unwrap();
            let timer = TimerFuture::new(Duration::from_millis(500), timer_data);
            timer.await;
            println!("Timer fired at {:?}", start.elapsed());
        }));
    }

    executor.lock().unwrap().run();
}