Продление жизни переменной

когда я компилирую код ниже в Rust 0.12.0, я получаю следующую ошибку:

error: borrowed value does not live long enough
let _ = match re.captures(a_line.unwrap().as_slice()) {

Как продлитьa_lineтак чтоc1 может быть выдвинут наvect1?

let vect = process_file(filename_ref);
...
fn process_file(filename: &str) -> Vec<&str> {

    let re = regex!(r"^(\w+)\t(\w+)\t(\w+)\t(\w+)\n$");
    let mut vect1 = Vec::new();

    let filepath = Path::new(filename);
    let _ = match File::open(&filepath) {
        Ok(f) => {
            let mut filebuffer = BufferedReader::new(f);
            for a_line in filebuffer.lines() {
                let _ = match re.captures(a_line.unwrap().as_slice()) {
                    Some(c) =>  {
                        let c1 = c.at(1);
                        vect1.push(c1);
                        ...
                    },
                   ...
               };
           } // end for
       },
       Err(e) => println!("Error: {}", e)
   };

   return vect1;

}

Ответы на вопрос(1)

Ваш ответ на вопрос