use simple_middleware::Manager;
#[tokio::main]
async fn main() {
let m = Manager::new();
m.next(|v, _n| async move { v + 1 }).await;
m.next(|value, next| async move {
next.call(value * 3).await
})
.await;
m.next(|value, next| async move {
println!("this works really good: {}", &value);
next.call(value).await
})
.await;
let ans: i32 = m.send(33).await;
println!("ans: {ans}");
}