bmrng 🪃
An async MPSC request-response channel for Tokio, where you can send a response to the sender. Inspired by crossbeam_requests.
Example
async
An async MPSC request-response channel for Tokio, where you can send a response to the sender. Inspired by crossbeam_requests.
#[tokio::main]
async fn main() {
let buffer_size = 100;
let (tx, mut rx) = bmrng::channel::<i32, i32>(buffer_size);
tokio::spawn(async move {
match rx.recv().await {
Ok((input, mut responder)) => {
let res = responder.respond(input * input);
assert_eq!(res.is_ok(), true);
}
Err(err) => {
panic!(err);
}
}
});
let response = tx.send_receive(8).await;
assert_eq!(response.unwrap(), 64);
}