pub fn bounded<T>(cap: usize) -> (Sender<T>, Receiver<T>)
Expand description

Creates a bounded channel.

The created channel has space to hold at most cap messages at a time.

Panics

Capacity must be a positive number. If cap is zero, this function will panic.

Examples

use async_channel::{bounded, TryRecvError, TrySendError};

let (s, r) = bounded(1);

assert_eq!(s.send(10).await, Ok(()));
assert_eq!(s.try_send(20), Err(TrySendError::Full(20)));

assert_eq!(r.recv().await, Ok(10));
assert_eq!(r.try_recv(), Err(TryRecvError::Empty));