1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
struct X { x: String, } impl Drop for X { fn drop(&mut self) { println!("value: {}", self.x); } } fn unwrap(x: X) -> String { let X { x: y } = x; //~ ERROR cannot move out of type y } fn main() { let x = X { x: "hello".to_string() }; let y = unwrap(x); println!("contents: {}", y); }