Skip to main content

hydro_test/embedded/
m2m_broadcast.rs

1use hydro_lang::live_collections::stream::{NoOrder, TotalOrder};
2use hydro_lang::location::MemberId;
3use hydro_lang::prelude::*;
4
5pub struct Src {}
6pub struct Dst {}
7
8pub fn m2m_broadcast<'a>(
9    dst: &Cluster<'a, Dst>,
10    input: Stream<String, Cluster<'a, Src>>,
11) -> Stream<(MemberId<Src>, String), Cluster<'a, Dst>, Unbounded, NoOrder> {
12    // used to test that we can call `source_cluster members` multiple times
13    input
14        .location()
15        .source_cluster_members(dst)
16        .entries()
17        .assume_ordering::<TotalOrder>(nondet!(/** test */))
18        .for_each(q!(|_| {}));
19
20    input
21        .broadcast(
22            dst,
23            TCP.fail_stop().bincode().name("m2m_data"),
24            nondet!(/** test */),
25        )
26        .map(q!(|s| s.to_uppercase()))
27        .entries()
28}