mod imp {
use std::sync::mpsc;
pub struct Sender<T>(mpsc::SyncSender<T>);
impl<T> Sender<T> {
#[must_use]
pub fn send_blocking(&self, item: T) -> bool {
self.0.send(item).is_ok()
}
}
pub type Receiver<T> = mpsc::Receiver<T>;
pub fn channel<T>() -> (Sender<T>, Receiver<T>) {
let (s, r) = mpsc::sync_channel(0);
(Sender(s), r)
}
}
pub use imp::*;