blob: 164f1d7459b826775e1181f73bfaabfd17e4da51 [file] [log] [blame] [view] [edit]
% Drop
<small>There is a new edition of the book and this is an old link.</small>
> `Drop` lets us customize what happens when a value is about to go out of scope.
```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.");
}
```
---
Here are the relevant sections in the new and old books:
* **[in the current edition: Ch 15.03 The `Drop` Trait Runs Code on Cleanup][2]**
* <small>[In the first edition: Ch 3.20 Drop][1]</small>
[1]: https://doc.rust-lang.org/1.30.0/book/first-edition/drop.html
[2]: ch15-03-drop.html