sena 0.2.0

Library for composable event handlers
Documentation
use sena::handling::handler::Handler;

fn increment<E>() -> impl Handler<i32, E, Output = i32> {
    |req: i32| async move { Ok(req + 1) }
}

fn decrement<E>() -> impl Handler<i32, E, Output = i32> {
    |req: i32| async move { Ok(req - 1) }
}

#[tokio::main(flavor = "current_thread")]
async fn main() {
    let inc = increment::<()>();
    let dec = decrement::<()>();

    let add2 = increment().pipe(increment::<()>());

    assert_eq!(inc.handle(10).await, Ok(11));
    assert_eq!(dec.handle(10).await, Ok(9));
    assert_eq!(add2.handle(10).await, Ok(12));
}