| Crates.io | channel_pipes |
| lib.rs | channel_pipes |
| version | 0.2.0 |
| created_at | 2022-02-07 19:10:49.495532+00 |
| updated_at | 2022-02-10 03:35:33.643391+00 |
| description | Perform operations on broadcast queues. |
| homepage | |
| repository | https://github.com/Frixuu/ChannelPipes |
| max_upload_size | |
| id | 528556 |
| size | 13,194 |
If you use crossbeam-channel, add this to your Cargo.toml:
[dependencies]
channel_pipes = { version = "0.2", features = ["crossbeam"] }
use channel_pipes::{operators::DistinctUntilChanged, CrossbeamSender, IntoPiped};
use crossbeam_channel::unbounded;
fn main() {
let (s, r) = unbounded::<i32>().pipe().distinct_until_changed();
let vec = vec![1, 2, 2, 3, 3, 3, 1];
for i in vec {
s.send(i);
}
assert_eq!(Ok(1), r.try_recv());
assert_eq!(Ok(2), r.try_recv());
assert_eq!(Ok(3), r.try_recv());
assert_eq!(Ok(1), r.try_recv());
assert!(r.try_recv().is_err());
}