summaryrefslogtreecommitdiffstats
path: root/src/doc/book/redirects/drop.md
blob: 164f1d7459b826775e1181f73bfaabfd17e4da51 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
% 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