Kann beim Auspacken nicht aus geliehenen Inhalten entfernt werden

Dies ist der Code, den ich ausführen möchte:

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

(uf dem Rust-Spielpla)

Ich erhalte den folgenden Fehler:

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

Ich sehe, dass es bereits eine Menge Dokumentation zu Problemen mit der Ausleihprüfung gibt, aber nach dem Lesen kann ich das Problem immer noch nicht herausfinden.

Warum ist das ein Fehler und wie löse ich ihn?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage