Crates.io | linkk |
lib.rs | linkk |
version | 0.1.2 |
source | src |
created_at | 2023-04-27 11:00:12.392917 |
updated_at | 2023-05-02 13:29:35.278488 |
description | A crate for creating channels and crossing them to facilitate communication between different parts of a program. |
homepage | |
repository | |
max_upload_size | |
id | 850258 |
size | 6,504 |
This crate provides a simple way to make a set of channels and criss-cross them. This pattern is useful for getting things that are hard to get talking to each other to communicate.
Conceptually, it can be thought of as making a bridge, and it can be used to send any type of data across the channels.
There's almost certainly a nicer way of doing this... but, I dunno what that is.
Add this to your Cargo.toml:
[dependencies]
linkk = "0.1.2"
Here is an example of how to use this crate:
use linkk::*;
setup_linkk!(pub, Window2os<u32>, Os2Window<u64>);
let (link2, link1) = make_new_linkk();
// link2 receives from link1
link2.send(42).unwrap();
assert_eq!(link1.recv().unwrap(), 42u32);
// link1 receives from link2
link1.tx.send(43 as u64).unwrap();
assert_eq!(link2.rx.recv().unwrap(), 43);