Avatar ·

Rust में कस्टम प्रकार के लिए Copy ट्रेट कैसे लागू करें?

सभी को नमस्कार! मैं Rust में नया हूँ और ट्रेट्स को समझने की कोशिश कर रहा हूँ। मेरे पास एक सरल स्ट्रक्चर है जो प्लेन पर एक बिंदु को दर्शाता है:\n\n```rust\nstruct Point {\n x: i32,\n y: i32,\n}\n```\n\nमैं चाहता हूँ कि यह स्ट्रक्चर एक सरल प्रकार की तरह व्यवहार करे जिसे अंतर्निहित रूप से कॉपी किया जा सके, जैसे `i32` या `bool`। यानी मैं चाहता हूँ कि `let p2 = p1;` असाइन करने पर वेरिएबल `p1` उपलब्ध रहे (जैसे संख्याओं के साथ होता है), न कि मूव हो जाए (जैसे `String` या `Vec` के साथ होता है)। मैंने सुना है कि इसके लिए `Copy` ट्रेट को लागू करना होता है। लेकिन जब मैं लिखने की कोशिश करता हूँ:\n\n```rust\nimpl Copy for Point {}\n```\n\nकंपाइलर एक एरर देता है: `the trait 'Copy' cannot be implemented for this type; the type does not implement 'Clone'`। मुझे समझ नहीं आ रहा कि ऐसा क्यों हो रहा है। मैं क्या गलत कर रहा हूँ? क्या मुझे `Clone` को भी लागू करना होगा?