pub fn find_bisect_point<F>(
    item_columns: &[ArrayRef],
    target: &[ScalarValue],
    compare_fn: F,
    low: usize,
    high: usize
) -> Result<usize>where
    F: Fn(&[ScalarValue], &[ScalarValue]) -> Result<bool>,
Expand description

This function searches for a tuple of given values (target) among a slice of the given rows (item_columns) using the bisection algorithm. The slice starts at the index low and ends at the index high. The boolean-valued function compare_fn specifies whether we bisect on the left (by returning false), or on the right (by returning true) when we compare the target value with the current value as we iteratively bisect the input.