MCPcopy Create free account
hub / github.com/colbymchenry/codegraph / find_bytes

Function find_bytes

codegraph-kernel/src/cfnptr.rs:161–180  ·  view source on GitHub ↗
(s: &[u8], needle: &[u8], from: usize)

Source from the content-addressed store, hash-verified

159 i == 0 || !is_word(s[i - 1])
160}
161
162fn find_bytes(s: &[u8], needle: &[u8], from: usize) -> Option<usize> {
163 if needle.is_empty() || s.len() < needle.len() {
164 return None;
165 }
166 let mut i = from;
167 while i + needle.len() <= s.len() {
168 // memchr on the first byte keeps this fast on 20KB+ files.
169 match s[i..s.len() - needle.len() + 1].iter().position(|&b| b == needle[0]) {
170 None => return None,
171 Some(off) => {
172 i += off;
173 if &s[i..i + needle.len()] == needle {
174 return Some(i);
175 }
176 i += 1;
177 }
178 }
179 }
180 None
181}
182
183fn contains_bytes(s: &[u8], needle: &[u8]) -> bool {

Callers 3

contains_bytesFunction · 0.85
find_wordFunction · 0.85
scan_includesFunction · 0.85

Calls 1

lenMethod · 0.80

Tested by

no test coverage detected