Crate async_channel
source ·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§
- The receiving side of a channel.
- A future returned by
Receiver::recv(). - An error returned from
Receiver::recv(). - A future returned by
Sender::send(). - An error returned from
Sender::send(). - The sending side of a channel.
- A
Receiverthat prevents the channel from not being closed. - A
Senderthat prevents the channel from not being closed.
Enums§
- An error returned from
Receiver::try_recv(). - An error returned from
Sender::try_send().
Functions§
- Creates a bounded channel.
- Creates an unbounded channel.