fn search_bndm_fwd<T: Primer>(
        &'a self,
        primer: &'a T,
        seq: &'a [u8],
        starts_at: i64,
    ) -> impl Iterator<Item = Footprint<T>> + 'a {
        let three_prime = &primer.seq()[primer.seq().len() - self.min_fp as usize..];
        find_all(three_prime, seq)
            .map(move |m| self.extend_fwd(primer.clone(), m as i64 + starts_at))
    }
// search for matches, for optimisation purposes, the slice to search and
// the Location it starts at is provided so we can reuse it
search for matches, for optimisation purposes, the slice to search and
the Location it starts at is provided so we can reuse it
search for matches for optimisation purposes the slice to search and the Location it starts at is provided so we can reuse it
fn search_bndm_fwd<T: Primer>(
        &'a self,
        primer: &'a T,
        seq: &'a [u8],
        starts_at: i64,
    ) -> impl Iterator<Item = Footprint<T>> + 'a {
        let three_prime = &primer.seq()[primer.seq().len() - self.min_fp as usize..];
        find_all(three_prime, seq)
            .map(move |m| self.extend_fwd(primer.clone(), m as i64 + starts_at))
    }
fn search_bndm_fwd < T : Primer > ( & ' a self , primer : & ' a T , seq : & ' a [ u8 ] , starts_at : i64 , ) -> impl Iterator < Item = Footprint < T > > + ' a { let three_prime = & primer . seq ( ) [ primer . seq ( ) . len ( ) - self . min_fp as usize .. ] ; find_all ( three_prime , seq ) . map ( move | m | self . extend_fwd ( primer . clone ( ) , m as i64 + starts_at ) ) }
search for matches, for optimisation purposes, the slice to search and
the Location it starts at is provided so we can reuse it
search for matches for optimisation purposes the slice to search and the Location it starts at is provided so we can reuse it
&'a self
primer
&'a T
seq
&'a [u8]
starts_at
i64
&'a self
primer
&'a T
seq
&'a [u8]
starts_at
i64