generic-channel 0.2.0

Generic `Sender` and `Receiver` abstract between several channel implementations: std, crossbeam-channel, futures
Documentation
1
2
3
4
5
6
7
8
9
10
11
use crate::{Receiver as ReceiverTrait, TryRecvError};
use crossbeam_channel::{Receiver, TryRecvError as CBTryRecvError};

impl<T> ReceiverTrait<T> for Receiver<T> {
    fn try_recv(&self) -> Result<T, TryRecvError> {
        self.try_recv().map_err(|err| match err {
            StdTryRecvError::Empty => TryRecvError::Empty,
            StdTryRecvError::Disconnected => TryRecvError::Disconnected,
        })
    }
}