hydro_test/cluster/
echo_server.rs
1use hydro_lang::*;
2
3pub struct Server {}
4
5pub struct Clients {}
6
7pub fn echo_server<'a>(flow: &FlowBuilder<'a>) -> (Process<'a, Server>, Cluster<'a, Clients>) {
8 let clients = flow.cluster::<Clients>();
10
11 let server = flow.process::<Server>();
13
14 let client_requests = clients
16 .source_iter(q!([format!("src: {}", CLUSTER_SELF_ID.raw_id)]))
17 .send_bincode(&server)
18 .clone()
19 .inspect(q!(|(id, t)| println!(
20 "...received request {} from client #{}, echoing back...",
21 t, id.raw_id
22 )));
23 client_requests
24 .send_bincode(&clients)
25 .for_each(q!(|t| println!("received response {}", t)));
26
27 (server, clients)
28}