less_than

Function less_than 

Source
pub fn less_than<A, B, T, Fa, Fb>(
    left: Fa,
    right: Fb,
) -> LessThanJoiner<Fa, Fb, T>
where T: Ord, Fa: Fn(&A) -> T + Send + Sync, Fb: Fn(&B) -> T + Send + Sync,
Expand description

Creates a joiner that matches when left(a) < right(b).

ยงExample

use solverforge_scoring::stream::joiner::{Joiner, less_than};

#[derive(Clone)]
struct Task { end: i64, start: i64 }

// Task A must end before Task B starts
let sequential = less_than(|t: &Task| t.end, |t: &Task| t.start);

assert!(sequential.matches(
    &Task { end: 10, start: 0 },
    &Task { end: 20, start: 15 }
));

assert!(!sequential.matches(
    &Task { end: 10, start: 0 },
    &Task { end: 20, start: 5 }
));