Невозможно выйти из заимствованного контента при распаковке
Это код, который я пытаюсь выполнить:
fn my_fn(arg1: &Option<Box<i32>>) -> (i32) {
if arg1.is_none() {
return 0;
}
let integer = arg1.unwrap();
*integer
}
fn main() {
let integer = 42;
my_fn(&Some(Box::new(integer)));
}
Я получаю следующую ошибку:
error[E0507]: cannot move out of borrowed content
--> src/main.rs:5:19
|
5 | let integer = arg1.unwrap();
| ^^^^ cannot move out of borrowed content
Я вижу, что уже есть много документации о проблемах проверки заимствований, но после прочтения я все еще не могу понять проблему.
Почему это ошибка и как мне ее решить?