equal_bi

Function equal_bi 

Source
pub fn equal_bi<A, B, T, Fa, Fb>(left: Fa, right: Fb) -> EqualJoiner<Fa, Fb, T>
where T: PartialEq, Fa: Fn(&A) -> T + Send + Sync, Fb: Fn(&B) -> T + Send + Sync,
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));