pub fn gen_bounds(positions :Vec<u32>, length :u32) -> Vec<(u32, u32)>{

    let mut result :Vec<(u32, u32)> = vec![];

    for i in positions.iter() {
        result.push((i.to_owned()+1,i+length));
    }
    return result;

}
/*
Gen_bounds 
this function will take the positions of a character and then add the length of it to give a start index and an end index of the string

args:
    - positions (Vec<u32>)  -> the vector of indexes generated from find
    - length (u16)          -> the length of the target section (7) 

*/
Gen_bounds
this function will take the positions of a character and then add the length of it to give a start index and an end index of the string

positions (Vec)  -> the vector of indexes generated from find
length (u16)          -> the length of the target section (7)
Gen_bounds this function will take the positions of a character and then add the length of it to give a start index and an end index of the string positions ( Vec ) - > the vector of indexes generated from find length ( u16 ) - > the length of the target section ( 7 )
pub fn gen_bounds(positions :Vec<u32>, length :u32) -> Vec<(u32, u32)>{
    let mut result :Vec<(u32, u32)> = vec![];
    for i in positions.iter() {
        result.push((i.to_owned()+1,i+length));
    }
    return result;
}
pub fn gen_bounds ( positions : Vec < u32 > , length : u32 ) -> Vec < ( u32 , u32 ) > { let mut result : Vec < ( u32 , u32 ) > = vec ! [ ] ; for i in positions . iter ( ) { result . push ( ( i . to_owned ( ) + 1 , i + length ) ) ; } return result ; }
Gen_bounds
this function will take the positions of a character and then add the length of it to give a start index and an end index of the string
Gen_bounds this function will take the positions of a character and then add the length of it to give a start index and an end index of the string
positions
Vec<u32>
length
u32
positions
Vec<u32>
length
u32