Crate bidirectional_channel

Source
Expand description

An async channel with request-response semantics.
When a Responder is asked to receive a request, it returns a ReceivedRequest, which should be used to communicate back to the sender

use bidirectional_channel::{bounded};
let (requester, responder) = bounded(1);
let requester = async { requester.send("hello").await.unwrap() };
let responder = async {
    let request = responder.recv().await.unwrap();
    let len = request.len();
    request.respond(len).unwrap()
};
let (response, request) = join!(requester, responder);
assert!(request.len() == response)

Structs§

Enums§

Functions§

  • Create a bounded Requester-Responder pair.
    That is, once the channel is full, future senders will yield when awaiting until there’s space again