#[allow(dead_code)]
pub fn channel<T>() -> (SyncSender<T>, SyncReceiver<T>) {
let (sender, receiver) = oneshot::channel();
(SyncSender(sender), SyncReceiver(receiver))
}
pub struct SyncSender<T>(oneshot::Sender<T>);
impl<T> SyncSender<T> {
pub fn send(self, message: T) -> Result<(), oneshot::SendError<T>> {
self.0.send(message)
}
}
#[allow(dead_code)]
pub struct SyncReceiver<T>(oneshot::Receiver<T>);
#[allow(dead_code)]
impl<T> SyncReceiver<T> {
pub fn recv(self) -> Result<T, oneshot::RecvError> {
self.0.recv()
}
}