wiki/content/20200929142932-drop_trait.md

33 lines
669 B
Markdown

---
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.");
}
```