Avatar ·

Wie erhalte ich den besitzenden Wert aus `Box<T>` in Rust ohne Kopieren?

Hallo zusammen! Ich habe angefangen, Rust zu lernen, und bin auf ein Problem bei der Arbeit mit Smart Pointern gestoßen. Ich habe eine Struktur, die das `Copy`-Trait nicht implementiert (z.B. enthält sie `Vec` oder `String`). Ich lege sie in eine `Box`, um sie auf dem Heap zu übergeben, aber später muss ich den ursprünglichen Wert wieder extrahieren, um ohne Borrowing weiter damit zu arbeiten. Hier ist ein Beispiel: ```rust struct Data { numbers: Vec, } fn main() { let boxed = Box::new(Data { numbers: vec![1, 2, 3] }); // Wie bekomme ich jetzt Data zurück, sodass numbers in den Besitz übergeht? // Ich möchte so etwas wie: let data = boxed.into_inner(); // Aber diese Methode gibt es nicht! } ``` Ich habe versucht, `*boxed` zum Dereferenzieren zu verwenden, aber das gibt eine Referenz, keinen Besitz. Ich habe versucht, `let data = *boxed;` zu schreiben — der Compiler