pub fn equal_bi<A, B, T, Fa, Fb>(left: Fa, right: Fb) -> EqualJoiner<Fa, Fb, T>Expand description
Creates a joiner that matches when extracted values are equal.
Use this for cross-joins between different entity types.
ยงExample
use solverforge_scoring::stream::joiner::{Joiner, equal_bi};
#[derive(Clone)]
struct Employee { id: usize, department: String }
#[derive(Clone)]
struct Task { assigned_to: usize, name: String }
// Match employees to their assigned tasks
let by_id = equal_bi(
|e: &Employee| e.id,
|t: &Task| t.assigned_to
);
let emp = Employee { id: 5, department: "Engineering".into() };
let task1 = Task { assigned_to: 5, name: "Review".into() };
let task2 = Task { assigned_to: 3, name: "Test".into() };
assert!(by_id.matches(&emp, &task1));
assert!(!by_id.matches(&emp, &task2));