(self, haystack: &[u8])
| 1109 | |
| 1110 | impl<T: AsRef<[u8]>> Utf8CaseInsensitiveNeedleArg for T { |
| 1111 | fn find_case_insensitive_in(self, haystack: &[u8]) -> Option<(usize, usize)> { |
| 1112 | let needle_ref = self.as_ref(); |
| 1113 | let mut matched_length: usize = 0; |
| 1114 | let mut needle_metadata = Utf8CaseInsensitiveNeedleMetadata::default(); |
| 1115 | |
| 1116 | let result = unsafe { |
| 1117 | sz_utf8_case_insensitive_find( |
| 1118 | haystack.as_ptr() as *const c_void, |
| 1119 | haystack.len(), |
| 1120 | needle_ref.as_ptr() as *const c_void, |
| 1121 | needle_ref.len(), |
| 1122 | &mut needle_metadata, |
| 1123 | &mut matched_length, |
| 1124 | ) |
| 1125 | }; |
| 1126 | |
| 1127 | if result.is_null() { |
| 1128 | None |
| 1129 | } else { |
| 1130 | let offset = unsafe { result.offset_from(haystack.as_ptr() as *const c_void) }; |
| 1131 | Some((offset as usize, matched_length)) |
| 1132 | } |
| 1133 | } |
| 1134 | } |
| 1135 | |
| 1136 | impl<'a, 'b> Utf8CaseInsensitiveNeedleArg for &'b Utf8CaseInsensitiveNeedle<'a> { |
no test coverage detected