MCPcopy Create free account
hub / github.com/ashvardanian/StringZilla / find_case_insensitive_in

Method find_case_insensitive_in

rust/stringzilla.rs:1111–1133  ·  view source on GitHub ↗
(self, haystack: &[u8])

Source from the content-addressed store, hash-verified

1109
1110impl<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
1136impl<'a, 'b> Utf8CaseInsensitiveNeedleArg for &'b Utf8CaseInsensitiveNeedle<'a> {

Callers 1

Calls 5

as_ptrMethod · 0.80
lenMethod · 0.80
as_bytesMethod · 0.80
metadata_ptrMethod · 0.80

Tested by

no test coverage detected