macro_rules! define_inner_star_join_flatmap {
($n:literal) => { ... };
}Expand description
Generate a inner_star_join_flatmapN/inner_star_join_flatmapN_nested function.
Call this macro for every number N in order to generate an N-way inner star join flatmap operator for both RootCircuit and NestedCircuit.
The operator computes an incremental join of multiple streams on the same key using a user-provided join function that can return 0 or more output values for each input tuple.
Example generated function signature:
pub fn inner_star_join_flatmap4<K, V1, V2, V3, V4, OV, It>(
stream1: &Stream<RootCircuit, OrdIndexedZSet<K, V1>>,
stream2: &Stream<RootCircuit, OrdIndexedZSet<K, V2>>,
stream3: &Stream<RootCircuit, OrdIndexedZSet<K, V3>>,
stream4: &Stream<RootCircuit, OrdIndexedZSet<K, V4>>,
join_func: impl Fn(&K, &V1, &V2, &V3, &V4) -> It + Clone + 'static,
) -> Stream<RootCircuit, OrdZSet<OV>>
where
K: DBData,
V1: DBData,
V2: DBData,
V3: DBData,
V4: DBData,
OV: DBData,
It: IntoIterator<Item = OV> + 'static;
pub fn inner_star_join_flatmap4_nested<K, V1, V2, V3, V4, OV, It>(
stream1: &Stream<NestedCircuit, OrdIndexedZSet<K, V1>>,
stream2: &Stream<NestedCircuit, OrdIndexedZSet<K, V2>>,
stream3: &Stream<NestedCircuit, OrdIndexedZSet<K, V3>>,
stream4: &Stream<NestedCircuit, OrdIndexedZSet<K, V4>>,
join_func: impl Fn(&K, &V1, &V2, &V3, &V4) -> It + Clone + 'static,
) -> Stream<NestedCircuit, OrdZSet<OV>>
where
K: DBData,
V1: DBData,
V2: DBData,
V3: DBData,
V4: DBData,
OV: DBData,
It: IntoIterator<Item = OV> + 'static;