INNER CODE UNIT · Rust
feature_from_index
David-OConnor/plascad · src/gui/mod.rs:152
fn feature_from_index(index: &Option<usize>, features: &[Feature]) -> 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, feature) in features.iter().enumerate() {
if feature.feature_type == FeatureType::Source {
continue; // From GenBank; generally the whole seq.
}
if *seq_i > feature.range.start && *seq_i < feature.range.end {
matched = true;
let feature_size = feature.range.end - feature.range.start - 1;
if feature_size < smallest_feature_size {
smallest_feature = i;
smallest_feature_size = feature_size;