use futures::Future;
use futures::sync::mpsc::unbounded;
use super::Messenger;
#[inline]
pub fn unbounded_channel<T: 'static>() -> (
Messenger<T>,
Messenger<T>,
impl Future<Item = (), Error = ()>,
) {
let (server_sender, server_receiver) = unbounded();
let (client_sender, client_receiver) = unbounded();
let (server, server_future) = Messenger::new(server_sender, client_receiver);
let (client, client_future) = Messenger::new(client_sender, server_receiver);
let future = server_future
.join(client_future)
.map(|_| ())
.map_err(|_| ());
(server, client, future)
}