crossbeam_ring_channel/lib.rs
1//! Ring-buffer channels built alongside `crossbeam-channel`, plus a `Select` wrapper
2//! that can mix ring receivers with standard crossbeam-channel operations.
3//!
4//! ```rust
5//! use crossbeam_ring_channel::{ring_bounded, select};
6//!
7//! let (tx, rx) = ring_bounded(2);
8//! tx.send(1).unwrap();
9//!
10//! select! {
11//! recv(rx) -> msg => {
12//! assert_eq!(msg.unwrap(), 1);
13//! },
14//! }
15//! ```
16//!
17mod channel;
18pub use channel::{RingReceiver, RingSender, ring_bounded};
19
20mod select;
21#[doc(hidden)]
22pub use select::SelectRecvAdapter;
23pub use select::{Select, SelectRecv, SelectSend, SelectedOperation, SelectedRecv, SelectedSend};