ckb_channel/
lib.rs

1//! Reexports `crossbeam_channel` to uniform the dependency version.
2pub use crossbeam_channel::{
3    after, bounded, select, tick, unbounded, Receiver, RecvError, RecvTimeoutError, Select,
4    SendError, Sender, TrySendError,
5};
6
7pub mod oneshot {
8    //! A one-shot channel is used for sending a single message between asynchronous tasks.
9
10    use std::sync::mpsc::sync_channel;
11    pub use std::sync::mpsc::{Receiver, RecvError, SyncSender as Sender};
12
13    /// Create a new one-shot channel for sending single values across asynchronous tasks.
14    pub fn channel<T>() -> (Sender<T>, Receiver<T>) {
15        sync_channel(1)
16    }
17}