Rust में `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...