INNER CODE UNIT · Rust
get_matches
google/best · src/intervals.rs:145
pub fn get_matches(
seq: &fasta::record::Sequence,
start: usize,
end: usize,
s: &str,
strand_rev: bool,
) -> Vec<FeatureInterval> {
let mut res = Vec::new();
for i in start..end {
// convert to zero-indexed
let seq_iter = seq.as_ref()[i - 1..(i - 1 + s.len()).min(end - 1)]
.iter()
.map(|c| c.to_ascii_uppercase());
let is_match = if strand_rev {
seq_iter.eq(s.bytes().rev().map(|c| COMPLEMENT[c as usize]))
} else {
seq_iter.eq(s.bytes())