[][src]Function binary_range_search::search_by

pub fn search_by<K, T, L: Fn(&T, &K) -> bool>(
    ts: &[T],
    r: Range<K>,
    lt: L
) -> &[T]

Search for a range of values within a sorted slice.

As it uses binary search, worst-case runtime bound is O(log N).

fn lt(x: &u8, y: &u8) -> bool { x < y }
assert!(search_by(&[0_u8; 0], 0..0_u8, lt).is_empty());
assert!(search_by(&[0_u8], 1..2, lt).is_empty());
assert_eq!(&[1], search_by(&[1_u8], 0..2, lt));
assert_eq!(&[5, 6], search_by(&(0..10).collect::<Vec<u8>>(), 5..7, lt));
assert_eq!(&[0], search_by(&(0..10).collect::<Vec<u8>>(), 0..1, lt));
assert_eq!(&[9], search_by(&(0..10).collect::<Vec<u8>>(), 9..11, lt));