`Box<T>` से कॉपी किए बिना स्वामित्व मान कैसे प्राप्त करें?
सभी को नमस्ते! मैंने Rust सीखना शुरू किया है और स्मार्ट पॉइंटर्स के साथ काम करते समय एक समस्या का सामना किया। मेरे पास एक struct है जो `Copy` trait को implement नहीं करता (उदाहरण के लिए, इसमें `Vec` या `String` है)। मैं इसे heap पर भेजने के लिए `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();
// लेकिन ऐसा कोई method नहीं है!
}
```
मैंने dereference करने के लिए `*boxed` का उपयोग करने की कोशिश की, लेकिन यह reference देता है, स्वामित्व नहीं। `let data = *boxed;` करने की कोशिश की — compiler