scaproust 0.3.2

Nanomsg scalability protocols implementation in rust. Various messaging patterns over pluggable transports
Documentation
// Copyright (c) 2015-2017 Contributors as noted in the AUTHORS file.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0>
// or the MIT license <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
// This file may not be copied, modified, or distributed except according to those terms.

pub mod session;
pub mod socket;
pub mod endpoint;
pub mod device;
pub mod probe;

use std::sync::mpsc;
use std::io;

use mio_extras;

use reactor;
use io_error::*;

pub trait Receiver<T> {
    fn receive(&self) -> io::Result<T>;
}

impl<T> Receiver<T> for mpsc::Receiver<T> {
    fn receive(&self) -> io::Result<T> {
        match mpsc::Receiver::recv(self) {
            Ok(t)  => Ok(t),
            Err(_) => Err(other_io_error("evt channel closed")),
        }
    }
}

pub type EventLoopRequestSender = mio_extras::channel::Sender<reactor::Request>;