The Drop Trait and Resource Cleanup
The Drop Trait and Resource Cleanup
Rust implements RAII (Resource Acquisition Is Initialization) via the Drop trait.
Custom Drop Implementations
struct ResourceHandle {
name: String,
}
impl Drop for ResourceHandle {
fn drop(&mut self) {
println!("Cleaning up resource: {}", self.name);
}
}
fn main() {
let _r = ResourceHandle { name: String::from("NetworkSocket") };
println!("Resource active");
// _r drops automatically when main exits
}Resources (file descriptors, sockets, database handles) cannot leak due to early returns or panics because drop runs deterministically on scope exit.