Невозможно выйти из заимствованного контента при распаковке

Это код, который я пытаюсь выполнить:

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)));
}

(на детской площадке Rust)

Я получаю следующую ошибку:

error[E0507]: cannot move out of borrowed content
 --> src/main.rs:5:19
  |
5 |     let integer = arg1.unwrap();
  |                   ^^^^ cannot move out of borrowed content

Я вижу, что уже есть много документации о проблемах проверки заимствований, но после прочтения я все еще не могу понять проблему.

Почему это ошибка и как мне ее решить?

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

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