Как получить владеющее значение из `Box<T>` в Rust без копирования?
```html
Всем привет! Я начал изучать Rust и столкнулся с проблемой при работе с умными указателями. У меня есть структура, которая не реализует трейт `Copy` (например, содержит `Vec` или `String`). Я помещаю её в `Box` для передачи по куче, но потом мне нужно извлечь оригинальное значение обратно, чтобы продолжить с ним работать без заимствования.
Вот пример:
```rust
struct Data {
numbers: Vec,
}
fn main() {
let boxed = Box::new(Data { numbers: vec![1, 2, 3] });
// Как теперь получить Data обратно, чтобы numbers перешла во владение?
// Хочется что-то вроде: let data = boxed.into_inner();
// Но такого метода нет!
}
```
Я пробовал использовать `*boxed` для разыменования, но это даёт ссылку, а не владение. Пытался сделать `let data = *boxed;` — компилятор говорит, что `Data` не реализует `Copy`. Пробовал unsafe блоки, но боюсь сделать что-то не так. Видел, что в некоторых обсуждениях упоминают `Box::into_raw`, но документация для меня сложновата. П
```