pub fn channel<T>() -> (Sender<T>, Receiver<T>) {
    let channel = BoxPtr::new(Box::new(Channel::new()));
    (
        Sender {
            channel: Some(channel),
        },
        Receiver {
            channel: Some(channel).into(),
        },
    )
}
/// Create a channel for sending multiple values between a producer and consumer,
/// with synchronization between consecutive results.
Create a channel for sending multiple values between a producer and consumer,
with synchronization between consecutive results.
Create a channel for sending multiple values between a producer and consumer with synchronization between consecutive results .
pub fn channel<T>() -> (Sender<T>, Receiver<T>) {
    let channel = BoxPtr::new(Box::new(Channel::new()));
    (
        Sender {
            channel: Some(channel),
        },
        Receiver {
            channel: Some(channel).into(),
        },
    )
}
pub fn channel < T > ( ) -> ( Sender < T > , Receiver < T > ) { let channel = BoxPtr :: new ( Box :: new ( Channel :: new ( ) ) ) ; ( Sender { channel : Some ( channel ) , } , Receiver { channel : Some ( channel ) . into ( ) , } , ) }
Create a channel for sending multiple values between a producer and consumer,
with synchronization between consecutive results.
Create a channel for sending multiple values between a producer and consumer with synchronization between consecutive results .