Crates.io | async-reply |
lib.rs | async-reply |
version | 0.2.2 |
source | src |
created_at | 2020-12-22 20:10:43.258141 |
updated_at | 2022-03-21 13:49:12.492681 |
description | Library to handle typed messages and replies |
homepage | https://github.com/OSSystems/async-reply-rs |
repository | https://github.com/OSSystems/async-reply-rs |
max_upload_size | |
id | 326172 |
size | 43,763 |
Allow the sending and reciving of typed messages.
use async_reply::Message;
#[derive(Debug, Message)]
#[rtype(response = "Pong")]
struct Ping;
#[derive(Debug)]
struct Pong;
let (requester, replyer) = async_reply::endpoints();
let ping_fut = async {
println!("Sending Ping");
let reply = requester.send(Ping).await.unwrap();
println!("Received {:?}", reply);
};
let pong_fut = async {
let (msg, handler) = replyer.recv::<Ping>().await.unwrap();
handler.respond(Pong).await.unwrap();
println!("Replied {:?} with Pong", msg);
};
ping_fut.join(pong_fut).await;
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.