[−][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));