bidirectional-channel 0.2.3

A channel where receivers can respond to a message, and senders can wait for a response.
Documentation
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)