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