pub fn bounded_future_both<T: Unpin>(size: usize) -> (TxFuture<T, SharedFutureBoth>, RxFuture<T, SharedFutureBoth>) {
    let (tx, rx) = crossbeam::channel::bounded(size);
    let shared = Arc::new(SharedFutureBoth::new());

    let tx_f = TxFuture::new(tx, shared.clone());
    let rx_f = RxFuture::new(rx, shared);
    (tx_f, rx_f)
}
/// Initiate a bounded channel that sender and receiver are async
Initiate a bounded channel that sender and receiver are async
Initiate a bounded channel that sender and receiver are async
pub fn bounded_future_both<T: Unpin>(size: usize) -> (TxFuture<T, SharedFutureBoth>, RxFuture<T, SharedFutureBoth>) {
    let (tx, rx) = crossbeam::channel::bounded(size);
    let shared = Arc::new(SharedFutureBoth::new());
    let tx_f = TxFuture::new(tx, shared.clone());
    let rx_f = RxFuture::new(rx, shared);
    (tx_f, rx_f)
}
pub fn bounded_future_both < T : Unpin > ( size : usize ) -> ( TxFuture < T , SharedFutureBoth > , RxFuture < T , SharedFutureBoth > ) { let ( tx , rx ) = crossbeam :: channel :: bounded ( size ) ; let shared = Arc :: new ( SharedFutureBoth :: new ( ) ) ; let tx_f = TxFuture :: new ( tx , shared . clone ( ) ) ; let rx_f = RxFuture :: new ( rx , shared ) ; ( tx_f , rx_f ) }
Initiate a bounded channel that sender and receiver are async
Initiate a bounded channel that sender and receiver are async
size
usize
size
usize