INNER CODE UNIT · Rust
primer_from_index
David-OConnor/plascad · src/gui/mod.rs:181
fn primer_from_index(index: &Option<usize>, primers: &[Primer]) -> Option<usize> {
if let Some(seq_i) = index {
// If multiple features are in the cursor's region, choose the smallest.
let mut matched = false;
let mut smallest_feature = 0;
let mut smallest_feature_size = 99999;
for (i, primer) in primers.iter().enumerate() {
for p_match in &primer.volatile.matches {
if *seq_i > p_match.range.start && *seq_i < p_match.range.end {
matched = true;
let feature_size = p_match.range.end - p_match.range.start - 1;
if feature_size < smallest_feature_size {
smallest_feature = i;
smallest_feature_size = feature_size;
}
}
}