Clone — explicit deep copy. Copy — implicit bitwise copy.
Clone:
Copy:
1#[derive(Clone)]2struct MyString {3 data: String,4}56let a = MyString { data: "hello".into() };7let b = a.clone();89#[derive(Copy, Clone)]10struct Point {11 x: f64,12 y: f64,13}1415let a = Point { x: 1.0, y: 2.0 };16let b = a; // Implicit copy17println!("{} {}", a.x, b.x); // Both valid
Key: Clone for heap, Copy for stack.