2 releases

0.1.1 Mar 31, 2023
0.1.0 Mar 31, 2023

#1072 in Concurrency

22 downloads per month

MIT/Apache

9KB
146 lines

sorted-channel

codecov

A multi-producer, multi-consumer channel that outputs sorted messages. Each message is received by only one receiving channel.

Examples

use sorted_channel::sorted_channel;
use std::thread;

let (tx, rx) = sorted_channel();

let handle = thread::spawn(move || {
    for i in [0, 9, 1, 8, 2, 7, 3, 6, 4, 5] {
        tx.send(i).unwrap();
    }
});

handle.join().unwrap();

for i in (0..10).rev() {
    assert_eq!(rx.recv(), Ok(i));
}

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~0.4–5MB
~11K SLoC