--- id: a5820942-f47a-4a5e-ba83-33916cc24674 title: Drop Trait --- # Introduction `Drop` lets you customize what happens when a value is about to go out of scope, ie: to release resources like files or network connections. # Example ``` rust struct CustomSmartPointer { data: String, } impl Drop for CustomSmartPointer { fn drop(&mut self) { println!("Dropping CustomSmartPointer with data `{}`!", self.data); } } fn main() { let _c = CustomSmartPointer { data: String::from("my stuff"), }; let _d = CustomSmartPointer { data: String::from("other stuff"), }; println!("CustomSmartPointers created."); } ```