Skip to main content

MultiLeftJoinExt

Trait MultiLeftJoinExt 

Source
pub trait MultiLeftJoinExt<K, V>: MapQuery<K, V>
where K: Hash + Eq + CellValue, V: CellValue,
{ // Provided method fn multi_left_join_by<R, RK, RV, JK, FL, FR>( self, right: R, left_keys: FL, right_key: FR, ) -> MultiLeftJoinPlan<Self, R, K, V, RK, RV, JK, FL, FR> where R: MapQuery<RK, RV>, RK: Hash + Eq + CellValue, RV: CellValue, JK: Hash + Eq + CellValue, FL: Fn(&K, &V) -> Vec<JK> + Send + Sync + 'static, FR: Fn(&RK, &RV) -> JK + Send + Sync + 'static { ... } }
Expand description

Multi-left-join operator returning a MapQuery plan node.

Consumes self and returns an uncompiled plan node; call MapQuery::materialize on the result to obtain a subscribable CellMap.

Provided Methods§

Source

fn multi_left_join_by<R, RK, RV, JK, FL, FR>( self, right: R, left_keys: FL, right_key: FR, ) -> MultiLeftJoinPlan<Self, R, K, V, RK, RV, JK, FL, FR>
where R: MapQuery<RK, RV>, RK: Hash + Eq + CellValue, RV: CellValue, JK: Hash + Eq + CellValue, FL: Fn(&K, &V) -> Vec<JK> + Send + Sync + 'static, FR: Fn(&RK, &RV) -> JK + Send + Sync + 'static,

Left join where each left item maps to multiple join keys.

left_keys extracts a Vec of join keys from each left item. Right items matching any of those keys are collected into the output Vec. Duplicate right items (reachable via multiple join keys) are deduplicated by right key. Every left row produces exactly one output row, keyed by the left key.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<K, V, M> MultiLeftJoinExt<K, V> for M
where K: Hash + Eq + CellValue, V: CellValue, M: MapQuery<K, V>,