]>
Commit | Line | Data |
---|---|---|
f9f354fc XL |
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. | |
5 | pub 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 | } |