Trait AsyncDrop
trait AsyncDrop
Async version of Drop trait.
When a value is no longer needed, Rust will run a "destructor" on that value. The most common way that a value is no longer needed is when it goes out of scope. Destructors may still run in other circumstances, but we're going to focus on scope for the examples here. To learn about some of those other cases, please see the reference section on destructors.
Copy and (Drop|AsyncDrop) are exclusive
You cannot implement both Copy and (Drop|AsyncDrop) on the same type. Types that
are Copy get implicitly duplicated by the compiler, making it very
hard to predict when, and how often destructors will be executed. As such,
these types cannot have destructors.
Required Methods
async fn drop(self: Pin<&mut Self>)Executes the async destructor for this type.
This method is called implicitly when the value goes out of scope, and cannot be called explicitly.
When this method has been called,
selfhas not yet been deallocated. That only happens after the method is over.Panics