Crate mrsc [] [src]

mpsc with requests

Examples

use mrsc;
use std::thread;

let server: mrsc::Server<u32, String> = mrsc::Server::new();
let channel = server.pop();

thread::spawn(move || {
    let req = server.recv().unwrap();
    let reply = {
        let msg = req.get();
        assert_eq!(msg, &123);
        "world".to_string()
    };
    req.reply(reply).unwrap();
});

let response = channel.req(123).unwrap();
let reply = response.recv().unwrap();
assert_eq!(reply, "world".to_string());

Structs

Channel

A channel to the server that can be used to send requests

EmptyRequest

A request without payload

Request

The request as seen by the server thread

Response

The response returned to an request

Server

The server that receives requests and creates channels

Type Definitions

RecvError
RecvTimeoutError
SendError
TryRecvError