В Rust используется разрушающее сопоставление с образцом, что в купе с моделью памяти Rust, иногда, дает очень занятные эффекты. Для примера возьмем структуру MyStruct и создадим две переменные типа Option в которых будет лежать наша структура, в одном случае в виде стекового объекта, а во втором в виде уникального указателя.
struct MyStruct {
val: int
}
let stack_data = Some(MyStruct{val:42});
let own_data = Some(~MyStruct{val:42});
http://sysdev.me/destructive-pattern-matching