pub fn try_recv(&mut self) -> Result<T, TryRecvError> {
        match self.next_message() {
            Poll::Ready(Some(msg)) => Ok(msg),
            Poll::Ready(None) => Err(TryRecvError::Closed),
            Poll::Pending => Err(TryRecvError::Empty),
        }
    }
Tries to receive a message from the channel without blocking.
If the channel is empty, or empty and closed, this method returns an error.
futures-channel/src/mpsc/mod.rs