В Rust используется разрушающее сопоставление с образцом, что в купе с моделью памяти Rust, иногда, дает очень занятные эффекты. Для примера возьмем структуру
val: int
}
let stack_data = Some(MyStruct{val:42}); // (1)
let own_data = Some(~MyStruct{val:42}); // (2)