mirror of
https://github.com/alrayyes/wiki.git
synced 2024-11-25 21:16:21 +00:00
33 lines
669 B
Markdown
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.");
|
|
}
|
|
```
|