use async_safe_defer::fixed::FixedAsyncScope;
use core::pin::pin;
#[tokio::main(flavor = "current_thread")]
async fn main() {
let mut disconnect = pin!(async { println!("disconnect") });
let mut flush = pin!(async { println!("flush") });
let mut scope = FixedAsyncScope::<2>::new();
scope
.try_defer(disconnect.as_mut())
.expect("slot available");
scope.try_defer(flush.as_mut()).expect("slot available");
scope.finish().await;
}