Sha256: bec4e25645ef4ba882554954e1438e531664add959e99b2da6b00ed349e593df
Contents?: true
Size: 752 Bytes
Versions: 124
Compression:
Stored size: 752 Bytes
Contents
use std::cmp::Ordering; pub fn find<C, T>(elements: C, needle: T) -> Option<usize> where C: AsRef<[T]>, T: Ord, { let mut base = 0usize; let mut slice: &[T] = elements.as_ref(); loop { let (head, tail) = slice.split_at(slice.len() >> 1); if let Some(middle_element) = tail.first() { match middle_element.cmp(&needle) { Ordering::Less => { base += head.len() + 1; slice = &tail[1..]; } Ordering::Greater => slice = head, Ordering::Equal => { return Some(base + head.len()); } } } else { return None; } } }
Version data entries
124 entries across 124 versions & 1 rubygems