Expand description
An async multi-producer multi-consumer channel, where each message can be received by only one of all existing consumers.
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§
- Closed
- A future returned by
Sender::closed(). - Receiver
- The receiving side of a channel.
- Recv
- A future returned by
Receiver::recv(). - Recv
Error - An error returned from
Receiver::recv(). - Send
- A future returned by
Sender::send(). - Send
Error - An error returned from
Sender::send(). - Sender
- The sending side of a channel.
- Weak
Receiver - A
Receiverthat does not prevent the channel from being closed. - Weak
Sender - A
Senderthat does not prevent the channel from being closed.
Enums§
- TryRecv
Error - An error returned from
Receiver::try_recv(). - TrySend
Error - An error returned from
Sender::try_send().