The Drop Trait and Resource Cleanup

Updated

October 31, 2026

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.