Crate async_channel[−][src]
An async multi-producer multi-consumer channel.
There are two kinds of channels:
A channel has the Sender and Receiver side. Both sides are cloneable and can be shared
among multiple threads.
When all Senders or all Receivers are dropped, the channel becomes closed. When a
channel is closed, no more messages can be sent, but remaining messages can still be received.
The channel can also be closed manually by calling Sender::close() or
Receiver::close().
Examples
let (s, r) = async_channel::unbounded(); assert_eq!(s.send("Hello").await, Ok(())); assert_eq!(r.recv().await, Ok("Hello"));
Structs
| Receiver | The receiving side of a channel. |
| Recv | A future returned by |
| RecvError | An error returned from |
| Send | A future returned by |
| SendError | An error returned from |
| Sender | The sending side of a channel. |
Enums
| TryRecvError | An error returned from |
| TrySendError | An error returned from |
Functions
| bounded | Creates a bounded channel. |
| unbounded | Creates an unbounded channel. |