With no garbage collector, Rust relies on deterministic destructors to manage the lifecycle of objects. Write types that safely encapsulate raw resources, reason confidently about the scopes of locks, and understand the limitations of Rust's guarantees around resource leakage.