bidirectional-channel

Async channel with request-response semantics


Crates.io version Download docs.rs docs

```rust use bidirectional_channel::{bounded, Respond}; use futures::join;

let (requester, responder) = bounded(1);

// A request "thread" let requester = async { requester.send("hello").await.unwrap().await.unwrap() };

// A response "thread" // This one recieves a &str, and returns its length let responder = async { let request = responder.recv().await.unwrap(); let len = request.len(); request.respond(len).unwrap() };

// Run them both together let (response, request) = join!(requester, responder); assert!(request.len() == response) ```