Продлить время жизни переменной для потока

Я читаю строку из файла, разбивая ее по строкам на вектор, а затем хочу что-то сделать с извлеченными строками в отдельных потоках. Как это:

use std::fs::File;
use std::io::prelude::*;
use std::thread;
fn main() {
    match File::open("data") {
        Ok(mut result) => {
            let mut s = String::new();
            result.read_to_string(&mut s);
            let k : Vec<_> = s.split("\n").collect();
            for line in k {
                thread::spawn(move || {
                    println!("nL: {:?}", line);
                });
            }

        }
        Err(err) => {
            println!("Error {:?}",err);
        }
    }
}

Конечно, это выдает ошибку, потому чтоs выйдет из области видимости до запуска потоков:

s` does not live long enough
main.rs:9           let k : Vec<_> = s.split("\n").collect();
                                     ^

Что я могу сделать сейчас? Я пробовал много вещей, какBox или жеArc, но я не мог заставить его работать. Мне как-то нужно создать копиюs который также живет в потоках. Но как мне это сделать?

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

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