pub fn channel<T>() -> (Sender<T>, Receiver<T>)
Creates a new one-shot channel, returning the sender/receiver halves.
The Sender
half is used to signal the end of a computation and provide
its value. The Receiver
half is a Future
resolving to the value that was given to the Sender
half.