use async_duplex_channel::*;
use std::time::Duration;
use tokio::runtime::Runtime;
fn main() {
let rt = Runtime::new().unwrap();
rt.block_on(async {
let (client, responder_builder) = channel(64, Duration::from_secs(2));
let responder = responder_builder.build(|req: String| async move { req });
tokio::spawn(async move {
responder.process_requests().await.unwrap();
});
let requests = vec!["Request 1".to_string(), "Request 2".to_string()];
let responses = client.request_batch(requests, 4).await.unwrap();
for response in responses {
println!("Response: {}", response);
}
});
}