В коде поток получает собственное владение Rc<Mutex<i32>>, но компилятор всё равно отклоняет запуск. Объясните, какой механизм делает такую передачу недопустимой.
use std::{rc::Rc, sync::Mutex, thread};
fn main() {
let counter = Rc::new(Mutex::new(0));
let worker_counter = Rc::clone(&counter);
thread::spawn(move || {
*worker_counter.lock().unwrap() += 1;
}).join().unwrap();
}