generic_channel/sender/
standard.rs

1use crate::{Sender as SenderTrait, TrySendError};
2use std::sync::mpsc::{Sender, SyncSender, TrySendError as SyncTrySendError};
3
4impl<T> SenderTrait<T> for Sender<T> {
5    fn try_send(&mut self, t: T) -> Result<(), TrySendError<T>> {
6        self.send(t)
7            .map_err(|err| TrySendError::Disconnected(err.0))
8    }
9}
10
11impl<T> SenderTrait<T> for SyncSender<T> {
12    fn try_send(&mut self, t: T) -> Result<(), TrySendError<T>> {
13        SyncSender::try_send(self, t).map_err(|err| match err {
14            SyncTrySendError::Full(t) => TrySendError::Full(t),
15            SyncTrySendError::Disconnected(t) => TrySendError::Disconnected(t),
16        })
17    }
18}