1 /// Searches for the given needle in the given haystack. 2 /// 3 /// If the perf-literal feature is enabled, then this uses the super optimized 4 /// memchr crate. Otherwise, it uses the naive byte-at-a-time implementation. find_byte(needle: u8, haystack: &[u8]) -> Option<usize>5pub fn find_byte(needle: u8, haystack: &[u8]) -> Option<usize> { 6 #[cfg(not(feature = "perf-literal"))] 7 fn imp(needle: u8, haystack: &[u8]) -> Option<usize> { 8 haystack.iter().position(|&b| b == needle) 9 } 10 11 #[cfg(feature = "perf-literal")] 12 fn imp(needle: u8, haystack: &[u8]) -> Option<usize> { 13 use memchr::memchr; 14 memchr(needle, haystack) 15 } 16 17 imp(needle, haystack) 18 } 19