Avatar ·

Como obter o valor owned de `Box<T>` em Rust sem copiar?

Olá a todos! Comecei a estudar Rust e me deparei com um problema ao trabalhar com smart pointers. Tenho uma struct que não implementa a trait `Copy` (por exemplo, contém `Vec` ou `String`). Coloco ela em um `Box` para alocação no heap, mas depois preciso extrair o valor original de volta para continuar trabalhando com ele sem borrowing.\n\nAqui está um exemplo:\n\n```rust\nstruct Data {\n numbers: Vec,\n}\n\nfn main() {\n let boxed = Box::new(Data { numbers: vec![1, 2, 3] });\n // Como obter Data de volta agora, para que numbers seja movido (owned)?\n // Queria algo como: let data = boxed.into_inner();\n // Mas esse método não existe!\n}\n```\n\nTentei usar `*boxed` para dereferenciar, mas isso dá uma referência, não ownership. Tentei fazer `let data = *boxed;` — o compilador